• ベストアンサー

代入を含む条件式

自然数を入力して、その数以下の奇数の自然数の和を計算するプログラムを作りたいんです。 入力した自然数までの総合計を求めるプログラムは何とか作ることができたのですが、奇数だけの自然数の和のプログラムはどう作ればいいのでしょうか?おそらくwhileを使うと思うんですけど、よろしくおねがいします。

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

  • ベストアンサー
回答No.4

 ループを使うなら、 #include <stdio.h> int main(void) { int number, sum_odd = 0, i; printf(" 入力(自然数) -> "); scanf("%d", &number); for(i = 1; i <= number; i += 2) sum_odd += i; printf(" 奇数和 %d", sum_odd); return 0; }  ループを使わないなら、 #include <stdio.h> int main(void) { int number, sum_odd; printf(" 入力(自然数) -> "); scanf("%d", &number); sum_odd = (number + number % 2) * ((number + 1) / 2) / 2; printf("\n奇数和 %d", sum_odd); return 0; }

noname#157126
質問者

お礼

ていねいな回答ありがとうございました。 無事できました。

その他の回答 (3)

  • Trick--o--
  • ベストアンサー率20% (413/2034)
回答No.3

そのプログラムの「加算する」の部分を「奇数だったら加算する」に変えればいいのです。

  • edomin
  • ベストアンサー率32% (327/1003)
回答No.2

int i_num; // 入力された数字 int i; // カウンタ int goukei = 0 ; // 合計 ・ ・ if(i_num == 1){ goukei = 1; } else { for(i = 1;i<i_num;i=i+2){ goukei = goukei + i; } } こんな感じでしょうか?

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

調べたい数 % 2 == 1 が成立した数が奇数

関連するQ&A