非負整数nを読み込んで、1+2+・・・+m>nとなる最小の整数mを表示するというプログラミングなのですが・・・
#include <stdio.h>
int main(void)
{
int n,m=■ , sum=0;
do {
printf("非負整数: "); scanf("%d", &n);
} while (n■0);
while (sum■n) {
■ ;
sum +=■;
}
printf("1+2+・・・+m> %dとなる最小の整数mは%dである。\n", n, m);
return (0);
}
■のところがわかる方どうにかお願いします!!
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
//*********************************************
// こんな感じでどうでしょうか? 間違っていたらすみません。
//*********************************************
#include <stdio.h>
int main(void)
{
int n,m=0 , sum=0;
do {
printf("非負整数: "); scanf("%d", &n);
} while (n<=0);
while (sum<=n) {
sum +=++m;
if(sum>n)
break;
}
printf("1+2+・・・+m> %dとなる最小の整数mは%dである。\n", n, m);
return (0);
}
No.1
- 回答日時:
自分でこのプログラムを作るとしたらどうするか、を考えれば、それぞれの箇所で何をするとよいのかわかるのではないでしょうか。
> int n,m=■ , sum=0;
変数の宣言と初期化しかできない箇所なので、mの初期値が入ります。int型なので整数です。
sumは1+2+...+mの合計値、 変数mはそのmですから、sum=0のときはmは何になるでしょうか?
(1+2+....+m = 0+1+2+...+m です)
> } while (n■0);
このループの目的を考えましょう。
入力された値が不正な場合、入力を繰り返す、というエラー処理の方法の一つです。
では、ここでいう「不正な値」とはどうなるでしょう?
>while (sum■n) {
>■ ;
>sum +=■;
>}
この「問題」を解く単純は方法は、 m=1,2,3,...と増やしていって、 1+2+...+m > nになっているかどうか調べて、始めてそうなっていたときmが答え、というものです。
必要なことは
・sumとnの大小関係を調べる。その結果でループを続けるかやめるか決定する。
・mを増やす。
・sumの計算をする。 1+2+..+m = (1 +2+..+m -1)+m だから、直前のsumにmを足すと新しいsumになる。
です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語階乗の総和を求める 2 2023/03/04 23:31
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分 1 2022/07/19 17:03
- C言語・C++・C# 至急お願いします。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分母 3 2022/07/19 17:09
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 malloc関数を使ってください!お願いします! 最 1 2022/07/21 09:28
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 割られる整数と割る整数を受け取って、商と余りを出力す 3 2022/07/05 10:23
- C言語・C++・C# プログラミング実行後の表示される値を答えよ #include<stdio.h> void main( 7 2022/05/20 00:07
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C言語: ポインタ 5 2022/06/01 08:33
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
構文エラー";"が型の前にあり...
-
#if 1 #elseの意味について
-
c言語のwhile文を使った計算で...
-
C言語 数字以外を入力させない...
-
C言語 プログラム
-
計算結果がlong型以上になる場...
-
for文の中にswitch文はいれられ...
-
配列を関数に渡す方法
-
プログラム
-
C言語階乗の総和を求める
-
直角三角形を表示するプログラム
-
非負整数nを読み込んで、1+...
-
c言語で平均をだす
-
和を求める問題
-
直角三角形
-
C言語の二分法のプログラムにつ...
-
「Aに対するBの割合」と「Aに対...
-
2÷3などの余りについて
-
マイナスからプラスへ転じた時...
-
大学数学の問題です。 加法群Z/...
マンスリーランキングこのカテゴリの人気マンスリー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文を使っ...
おすすめ情報