• ベストアンサー

デバックをお願いします。

以下のソースの欠陥を探していただけないでしょうか?1+1+1/2+1/3+…1/100の計算です。 #include<stdio.h> double func(int n){return( n > 0 ? 1.0/(n*n) : 0);} int main() { double S = 1.0; int i; for(i=0;i<=100;i++) {S=S+func(i);} printf("求める答えは%f.\n",&S); return 0; }

質問者が選んだベストアンサー

  • ベストアンサー
  • Nayuta_X
  • ベストアンサー率46% (240/511)
回答No.1

似たような、言語が いっぱいありますので program 言語をはっきりと示さないと 良い回答が得られませんよ。

rew
質問者

お礼

すいません。Cです。

その他の回答 (1)

  • nitorin
  • ベストアンサー率55% (11/20)
回答No.2

あまり、詳しくみていませんが こんな感じでしょうか。 ちなみに、1 + 1 + 1/2 + 1/3 …でいいのですよね (最初の1 + 1 が気になりました。) #include<stdio.h> double func(int n){ //return( n > 0 ? 1.0/(n*n) : 0); return( n > 0 ? 1.0/(n) : 0); } int main() { double S = 1.0; int i; //for(i=0;i<=100;i++) { for(i=1;i<=100;i++) { S =S + func(i); } //printf("求める答えは%f.\n",&S); printf("求める答えは%f\n",S); return 0; } ~

rew
質問者

お礼

すいません。1+1+1/(2*2)+1/(3*3)+…+1/(100*100)に訂正です。 あと、printfとscanfの使い方を完全に混同してました。笑。 ご指摘ありがとうございます。

関連するQ&A