コードは、1からxまでの数値の合計を見つけるか、 xの階乗xの値を入力すると、ifおよびelse if文を実行せずにプログラムは直接終了します。これは私のコードです。ユーザに数字nを求めて、合計の計算とnの階乗の計算のどちらかを選択するプログラムを提供するプログラム
#include <stdio.h>
int sum(int num);
int fact(int num);
int main(void)
{
int x = 0;
char choice;
printf("Enter a number : \n");
scanf("%d", &x);
printf("Enter f for factorial, s for sum \n");
choice = getchar();
//These lines are ignored by C
if (choice == 'f' || choice == 'F')
{
printf("The factorial of %i is %i \n",x, fact(x));
}
else if (choice == 's' || choice == 'S')
{
printf("The sum from 1 to %i is %i \n",x, sum(x));
}
}
int sum (int num)
{
int sum =0;
for (int i =1; i <=num; i++)
sum = sum+i;
return sum;
}
int fact (int num)
{
int fact =1;
for (int i =1; i <=num; i++)
fact = fact*i;
return fact;
}
誰でも私のコードに間違いがありますが、どうすれば修正できますか?ありがとうございました。
可能な重複[なぜ(のgetcharはありません)私はscanfの後にEnterキーを押すのを待つ()?](HTTP:/
これを避けるために、あなたのコードの変更を以下のようにしよう/image/gif/paws/1391548/why-doesnt-getchar-wait-for-me-to-press-enter-after-scanf) – rsp