1560
コメント:
|
529
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 3: | 行 3: |
== 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]] |
== 未解決問題 == |
行 11: | 行 5: |
== Help Me! == | 第11行目の有無によって第18行目の出力が異なります。 なぜでしょう?-- [[rei05]] <<DateTime(2012-07-11T13:47:51+0900)>> |
行 13: | 行 8: |
=== 解決済み === * AOJ10020番 Wrong Answer * [[http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=10020]] {{{ |
{{{#!highlight haskell |
行 20: | 行 10: |
#include<math.h> | |
行 22: | 行 13: |
double ans=100000; int n,i; |
|
行 23: | 行 16: |
int num,i,pri; char ch,counter[26]={0}; //counterはintでいいんですね |
scanf("%d",&n); |
行 26: | 行 18: |
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]++; } } |
for(i=0;i<n;i++){ printf("%f\n",fmod(ans*1.05,1000)); if(fmod(ans*1.05,1000)==0) ans*=1.05; else ans=ans*1.05-fmod(ans*1.05,1000)+1000; } |
行 37: | 行 26: |
for(i=0;i<=25;i++){ pri=counter[i]; printf("%c : %d\n",i+'a',pri); } return(0); |
printf("%d\n",(int)ans); return 0; |
行 45: | 行 30: |
* 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)>> |
C言語
未解決問題
第11行目の有無によって第18行目の出力が異なります。 なぜでしょう?-- rei05 2012-07-11 13:47:51
1 #include<stdio.h>
2 #include<math.h>
3
4 int main(){
5 double ans=100000;
6 int n,i;
7
8 scanf("%d",&n);
9
10 for(i=0;i<n;i++){
11 printf("%f\n",fmod(ans*1.05,1000));
12 if(fmod(ans*1.05,1000)==0)
13 ans*=1.05;
14 else
15 ans=ans*1.05-fmod(ans*1.05,1000)+1000;
16 }
17
18 printf("%d\n",(int)ans);
19 return 0;
20 }