
ぼくはプログラム始めたばかりです。ミスを見つけられた方、ご指導お願いします。
正整数nを入力して、nの階乗をもとめるプログラムを作りたいのですが、実行結果がいつも1になります。どこがおかしいか教えてください。以下のプログラムです。
#include <stdio.h>
int main(void)
{
int i, n, s;
printf("n = ?");
scanf("%lf", &n);
s = 1;
i = 1;
while(i <= n) {
s = s * i;
i = i + 1;
}
printf("s = %3d\n", s);
return 0;
}
No.4
- 回答日時:
#2です。
すみません訂正です。プログラムを勘違いしてました。先ほどの回答は無しにしてください。
で、答えとしては
scanf("%lf", &n);
の部分を
scanf("%d", &n);
にしたらできませんかね。
No.2
- 回答日時:
s = s * i;
i = i + 1;
として計算していますが変化するのは変数iだけですよね?
これでは変数sはいつまでたっても1のままです。
計算上、1に何をかけても答えは1ですので、sの値も変化させるとかしない限り答えは1だけになりますよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
構文エラー";"が型の前にあり...
-
#if 1 #elseの意味について
-
C言語階乗の総和を求める
-
C言語の二分法のプログラムにつ...
-
for文の中にswitch文はいれられ...
-
while文について、c言語...
-
直角三角形を表示するプログラム
-
C言語で電卓を作成する。
-
scanf関数を用いての加減乗除%...
-
プログラミングソースコード(...
-
C言語 偶数判定
-
計算結果がlong型以上になる場...
-
SIGALRMでプロセス終了
-
配列を関数に渡す方法
-
和を求める問題
-
全角文字の判定
-
C言語 数字以外を入力させない...
-
C言語プログラムが理解できなくて…
-
複数桁10進数の*桁目だけを抽出...
-
Aの値からBの値を除するとは??
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
#if 1 #elseの意味について
-
構文エラー";"が型の前にあり...
-
for文の中にswitch文はいれられ...
-
配列を使って魔方陣
-
配列を関数に渡す方法
-
プログラム
-
C言語 マスターマインドゲーム...
-
プログラミングで二番目に大き...
-
初心者です。for文、if文を使っ...
-
scanfが実行されません
-
C言語 数字以外を入力させない...
-
C言語プログラムが理解できなくて…
-
C言語の二分法のプログラムにつ...
-
C言語階乗の総和を求める
-
C言語のwhileループについて
-
for文を使用して値を代入したい...
-
while文を使った問題なのですが...
-
for文の条件式について
-
直角三角形を表示するプログラム
-
C言語 エラー表示 break の位...
おすすめ情報