C言語の問題です
1!からn!までの合計値を求めるnの範囲は(1以上10以下)
5を入力した場合153
このような問題で階乗を求めるプログラムはできたのですが総和を求めることができないので修正方法を教えてほしいです。
#include
int main
{
int n,sum=1,i;
printf("1以上10以下の整数を入力してください\n")
scanf("%d,&n);
if(n<1II n>10)
{
return 1;
}
i=1;
while(i<=n)
{
sum *= i;
i++;
}
printf("%d\n",sum)
return 0;
}
実行結果は5を入力したら120になってしまいます
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
No.1
- 回答日時:
この問題で求めるのは、1!からn!までの合計値です。
つまり、1! + 2! + 3! + ... + n!を求める必要があります。修正するためには、以下のように変更することができます。
#include <stdio.h>
int main()
{
int n, sum = 0, i, fact = 1;
printf("1以上10以下の整数を入力してください\n");
scanf("%d", &n);
if(n < 1 || n > 10)
{
return 1;
}
for(i = 1; i <= n; i++)
{
fact *= i;
sum += fact;
}
printf("%d\n", sum);
return 0;
}
この修正したプログラムでは、forループを使って1からnまでの各数の階乗を求め、それらを合計しています。初期値としてsumを0に設定しています。また、各数の階乗は変数factに保存しています。最初にfactを1に設定し、ループ内でiを掛け合わせることで、各数の階乗を計算しています。
また、if文の条件式で、論理和(||)を使うべきところで、論理積(&&)を使ってしまっていました。修正したプログラムでは、条件式を正しく修正しています。
この修正後のプログラムを実行すると、5を入力した場合に153が出力されます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 割られる整数と割る整数を受け取って、商と余りを出力す 3 2022/07/05 10:23
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分 1 2022/07/19 17:03
- C言語・C++・C# 至急お願いします。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分母 3 2022/07/19 17:09
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 malloc関数を使ってください!お願いします! 最 1 2022/07/21 09:28
- C言語・C++・C# C言語: ポインタ 5 2022/06/01 08:33
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
#if 1 #elseの意味について
-
構文エラー";"が型の前にあり...
-
getcの改行判定
-
プログラミングで二番目に大き...
-
for文の中にswitch文はいれられ...
-
while文について、c言語...
-
配列を関数に渡す方法
-
10進数からN進数に変換するプロ...
-
C言語 エラー表示 break の位...
-
C言語プログラムが理解できなくて…
-
中央値をもとめる
-
for文について
-
配列を使って魔方陣
-
平均身長のプログラミング
-
階乗のプログラム!!
-
c言語についての質問です。
-
信頼区間の1.96や1.65ってどこ...
-
マイナスからプラスへ転じた時...
-
C言語での引数の省略方法
-
【C++】関数ポインタの使い方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
構文エラー";"が型の前にあり...
-
#if 1 #elseの意味について
-
for文の中にswitch文はいれられ...
-
getcの改行判定
-
C言語階乗の総和を求める
-
配列を使って魔方陣
-
while文について、c言語...
-
プログラミングで二番目に大き...
-
C言語 数字以外を入力させない...
-
c言語のwhile文を使った計算で...
-
C言語プログラムが理解できなくて…
-
C言語で電卓を作成する。
-
配列を関数に渡す方法
-
C言語の二分法のプログラムにつ...
-
c言語for文
-
scanf関数を用いての加減乗除%...
-
階乗のプログラム!!
-
計算結果がlong型以上になる場...
-
c言語プログラミングで1から100...
-
初心者です。for文、if文を使っ...
おすすめ情報