繰り返し計算:繰り返し回数が未知の場合


  繰り返し2 [while] (もう少し複雑な繰り返し:条件を満たしている間の繰り返し
  
 以下のプログラムは、1から9までの整数を入力していき、その総和が25以上になるまで繰り返すプログラムである。最後にその総和も表示される。
 このプログラムを実行したら、1桁の自然数を25以上になるまで入力してみよう。例えば、9、8、7、6と入力すると30が表示される。
 

 

 ● 繰り返し2 [while] (もう少し複雑な繰り返し)
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
024:
/*   loop02.c               */
 
#include <stdio.h>
 
int main(void)
{
    int c,s,n;
 
   s=0;
   n=25;
 
   while (s<n) {
      printf("c=");
      scanf("%d",&c);
      if  ((c>0) && (c<10))
      {
            s=s+c;
            printf("s=%d\n",s);
      }
   }
   printf("sum=%d\n",s);
 
  return 0;
}
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
024:
-
-
-
-
-
-
-
-
変数sを0にしておく(初期化)
nに25を代入
-
nが25より小さい間{ }内を 繰り返す
-
-
   cが1桁の自然数ならば
-
     cの値をsに加える 
     現在のsの値を表示
-
  繰り返し文(while)最後の }
 最終総和を表示 
-
-
-

 

 


  
繰り返し3 [do〜while] (その他の繰り返し:条件を満たしている間の繰り返し2[後ろで判断]
  
 以下のプログラムは、正以外の整数が入力されるまで、正の整数の足し算(総和を求める)を繰り返すプログラムである。また、現在が何回目の入力なのかも表示する。
 このプログラムを実行したら、数回は正の整数を入力し、最後に0を入力してみよう。
 このプログラムでわかるように、[do〜while]は[while]と異なり、繰り返し処理の最後で判断を行う。すなわち、[do〜while]は必ず1回はその{ } 内を実行する。


 ● 繰り返し3 [do〜while] (その他の繰り返し)
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
024:
025:
026:
/*   loop03.c               */
 
#include <stdio.h>
 
int main(void)
{
   int c,s,n;
 
   s=0;
   n=1;
 
   do  {
      printf("n=%d\n",n);
      printf("c=");
      scanf("%d",&c);
      if  (c>0)
      {
            s=s+c;
            printf("s=%d\n",s);
      } 
      n=n+1;  /* n++ */
   } while (c>0);
   printf("sum=%d\n",s);
 
   return 0;
}
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
024:
025:
026:
-
-
-
-
-
-
-
-
変数sを0にしておく(初期化) 
nに1を代入(初期化) 
-
繰り返しの開始位置 
現在、何回目の入力なのかを表示  
-
-
  cが正ならば 
-
     cの値をsに加える  
     現在のsの値を表示 
-
  現在の入力回目をカウントアップ 
 cが正ならば繰り返し(do〜while)を続ける 
 最終総和を表示  
-
-
-

 


   [問題09] ある人数の試験の点数(0から100)を入力していき、その点数に負の値を入力したときに繰り返し処理を終了するプログラムを作りなさい。また、プログラムの最後に、これまで入力した点数の平均を計算して表示すること。


  演習07 簡単な繰り返し計算

        複利計算など経済問題への応用 

   元金 x円 が 年利 y% で複利計算により増えるとき、元金の倍以上になるまで
  各年の金額を表示するプログラムを作りなさい。
  (x,yは便宜上実数で計算する)
  ただし、繰り返す回数が多くなるので y の与え方に注意すること。

  例 x=\10,000 y=7.5%   
   0周年 10000
   1周年 10750 
   2周年   
    ↓
   ?周年 20610

  この問題のように解決までに繰り返し回数がわからない(今回の問題は単純であるため数学的に求めることはできる)
 計算も数多く存在する。数値計算は工学だけでなく経済などあらゆる問題に必要となる。

 戻る