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 が計算されました.