- ベストアンサー
等差数列 Cプログラミング
C言語でのプログラムの添削をお願いします。 2+3iの等差数列をi=10まで表示して、さらにその総和を求めるというものなのですが、 #include<stdio.h> main(){ int i; int a=0; int S; for(i=1;i<=10;i++){ a=2+3*i; printf("a=%d\n" ,a); } S=(1/2)*i*(2+a); printf("S=%d\n" ,S); return 0; } このようにしてみたら、 S=(1/2)*i*(2+a); の部分には効果がないと表示され、実際に値が0になってしまいます。 原因がわかりません。 どなたか理解できる方、回答お願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは Integerという数値型は、整数を扱います。したがって(1/2)を計算した段階で結果が 0 のため、(1未満の0.5は、0とされる)その後の乗算は常に結果が 0 になり効果がありません。
その他の回答 (2)
- Trick--o--
- ベストアンサー率20% (413/2034)
回答No.3
#1間違えた。忘れてくれー><
- Trick--o--
- ベストアンサー率20% (413/2034)
回答No.1
C言語の代入演算子は == です。 = は比較演算子です。
お礼
やはりそうでしたか。 式を工夫して表せるようにしたいとおもいます。 ありがとうございます。