C言語の初心者の基礎教程の求めは1から100までの和です。


タイトル:1+2+3+を求めます。+98+99+100
(1)数学的方法で解く
(2)C言語プログラムの解を作成する
正解:
(1)数学的方法

S = 1+2+3+……+98+99+100
 = (1+100) + (2+99) + (3+98) + …… + (49+52) + (50+51)
 = 101 * 50
 = 5050
(2)C言語プログラミング

#include <stdio.h>

int main()
{
  int sum = 0; //    
  for(int i = 1; i <= 100; i++)
  {
    sum = sum + i;
  }
  
  printf("total is %d
", sum); }
実行結果:
total is 5050
分析:
(1)第1サイクル
i=1,sum=sum+i=0+1=1,ここの右側のsumの値は初値0で、左のsumに1を賦与した後、sumの最新値は1になりました。
(2)第二サイクル
i=2,sum=sum+i=1+2=3,ここで右側のsumの値はすでに前のステップの計算で1になりました。左のsumに3を割り当てた後、sumの最新値
となります
(3)第三サイクル
i=3,sum=sum+i=3+3=6,ここで右側のsumの値はすでに前のステップの計算で3になりました。計算結果6を左のsumに割り当てたら、sumの最新値は6になります。
(4)第4サイクル
i=4,sum=sum+i=6+4=10,ここで右側のsumの値はすでに前のステップの計算で6になりました。計算結果10を左のsumに割り当てたら、sumの最新値は10になります。
(5)……このように100回実行した後、得られた結果は5050です。
新しい知識点:
sum=sum+iはsum+=iと書くことができます。全部sumとiを足した後、新しい値をsumに賦与します。
後でプログラミングしてできるだけ+=このような方式を使います。
理由:C言語はコンパイラでコンパイルし、コンパイラが最適化を開けていない場合、2つの書き方は完全に等価です。コンパイラが最適化を開始すると、+=の実行速度が速くなります。これはまず印象があれば大丈夫です。今は深く理解する必要はありません。)
ジョブ:
(1)上記のプログラムをデバッグします。右の大かっこに入るたびに、sumの上にマウスを懸けて、sumの値を観察します。
上のプログラムは100回循環します。デバッグする時、10回ぐらい循環すればステップアウトできます。
(2)
sum=sum+iをsum+=iに変更し、運転結果

#include <stdio.h>

int main()
{
  int sum = 0; //    
  for(int i = 1; i <= 100; i++)
  {
    sum += i;
  }
  
  printf("total is %d
", sum); }
(3)紙にこのプログラムを書き取ります。