C言語の解説の演習の解答(第四回)


演習の解答


前回の解説で使われたプログラムを、少し変えるだけです.
プログラムは次のようになります.

#include <stdio.h>
main()
{
  int sum,i,n,a;
  
  printf("n=");
  scanf("%d",&n);
  sum = 1; 

  for (i=1;i<=n;i=i+1) {
    a = i;
    sum = sum * a;
  }

  printf("n!=%d\n",sum);
}

      

前回の解説でのプログラムとの変更点は以下の通りです.
まず、階乗を求めるわけですから、

  sum = sum + a;

のところは

  sum = sum * a;

とする必要があります.また、0! = 1 ですから

  sum  =  0;

のところは

  sum  =  1;

としなければなりません.あとは printf() での表示の部分を変更すれば終わりです.
上のプログラムを cygnus で実行すると

n=

と表示されます.ここで例えば

10 [ENTER KEY]

と入力すると、

n!=3628800

となり、3628800 = 1*2*3*4*5*6*7*8*9*10 が計算されました.

C言語の解説と演習
(第4回)へ行く
   
C言語の解説と演習
(第5回)へ行く

このページに関する質問は kitamoto@edu.yamaguchi-u.ac.jp