ログイン
編集不可のページディスカッション情報添付ファイル
"rei05/C言語"の差分

MMA
18と25のリビジョン間の差分 (その間の編集: 7回)
2012-05-16 17:09:44時点のリビジョン18
サイズ: 1560
編集者: rei05
コメント:
2012-05-29 16:57:15時点のリビジョン25
サイズ: 1188
編集者: rei05
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 2: 行 2:
== AOJ解答 ==
 . 最終的にAcceptedとなった回答です。
行 3: 行 5:
== AOJ解答 ==
 * [[http://wiki.mma.club.uec.ac.jp/rei05/C言語/10020|10020]]
 * [[http://wiki.mma.club.uec.ac.jp/rei05/C言語/10021|10021]]
 * [[http://wiki.mma.club.uec.ac.jp/rei05/C言語/10022|10022]]
 * [[http://wiki.mma.club.uec.ac.jp/rei05/C言語/10023|10023]]
 * [[http://wiki.mma.club.uec.ac.jp/rei05/C言語/10024|10024]]
 * [[http://wiki.mma.club.uec.ac.jp/rei05/C言語/10025|10025]]
 . ここはこうした方がいいなど改善すべき点がありましたら是非ご教授お願いします。

 * [[/10020]]
 * [[/10021]]
 * [[/10022]]
 * [[/10023]]
 * [[/10024]]
 * [[/10025]]
 * [[/10026]]
 * [[/10027]]
 * [[/10028]]
行 12: 行 18:
=== 未解決 ===
 * AOJ10029番 Time Limit Exceeded
  * http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=10029
行 13: 行 22:
=== 解決済み ===

 * AOJ10020番 Wrong Answer
  * [[http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=10020]]

{{{
{{{#!highlight haskell
行 20: 行 24:
行 23: 行 26:
int num,i,pri;
char ch,counter[26]={0}; //counterはintでいいんですね
int n,i,j,k,l,temp;
scanf("%d",&n);
行 26: 行 29:
while(scanf("%c",&ch)!=EOF){ //入力終了条件を\nからEOFに修正
  scanf("%c",&ch); //←この行は不要
  if('a'<=ch&&ch<='z'){
    num=ch-'a';
    counter[num]++;
  }else if('A'<=ch&&ch<='Z'){
    num=ch-'A';
    counter[num]++;
int num[n];
for(i=0;i<n;i++){
  scanf("%d",&num[i]);
}

for(j=0;j<n;j++){
  for(k=0;k<j;k++){
    if(num[j]<num[k]){
      temp=num[j];
      num[j]=num[k];
      num[k]=temp;
    }
行 37: 行 44:
for(i=0;i<=25;i++){
  pri=counter[i];

  printf("%c : %d\n",i+'a',pri);
for(l=0;l<n-1;l++){
  printf("%d ",num[l]);
行 41: 行 47:
printf("%d\n",num[n-1]);
行 45: 行 52:

 * counterをリセットしないと2回目以降の結果がバグると思いますよん-- [[alstamber]] <<DateTime(2012-05-08T22:09:37+0900)>>
 * すみません具体的にどこをどう直せば良いですか?問題文を見る限り動かすのは1回でいいと思うのですが。-- [[rei05]] <<DateTime(2012-05-09T01:00:33+0900)>>
 * 上記のブログを参考にしたところ1行消して正解でした。-- [[rei05]] <<DateTime(2012-05-09T19:07:08+0900)>>
 * 16行目のm1/nの部分で結果が整数に丸められてる気がする。m1, m2をdoubleで定義するといい。 -- [[iz]] <<DateTime>>
 * ご指摘の通り改善しましたところ正解でした。ありがとうございました。 -- [[rei05]] <<DateTime(2012-05-26T13:45:52+0900)>>

C言語

AOJ解答

Help Me!

未解決

   1 #include<stdio.h>
   2 int main(){
   3 
   4 int n,i,j,k,l,temp;
   5 scanf("%d",&n);
   6 
   7 int num[n];
   8 for(i=0;i<n;i++){
   9   scanf("%d",&num[i]);
  10 }
  11 
  12 for(j=0;j<n;j++){
  13   for(k=0;k<j;k++){
  14     if(num[j]<num[k]){
  15       temp=num[j];
  16       num[j]=num[k];
  17       num[k]=temp;
  18     }
  19   }
  20 }
  21 
  22 for(l=0;l<n-1;l++){
  23   printf("%d ",num[l]);
  24 }
  25 printf("%d\n",num[n-1]);
  26 
  27 return(0);
  28 }
  • 16行目のm1/nの部分で結果が整数に丸められてる気がする。m1, m2をdoubleで定義するといい。 -- iz 2024-09-24 04:17:43

  • ご指摘の通り改善しましたところ正解でした。ありがとうございました。 -- rei05 2012-05-26 13:45:52

rei05/C言語 (最終更新日時 2012-07-16 17:50:37 更新者 nomeaning)