【3月6日実施】システムメンテナンス実施のお知らせ

以下のプログラムのURLで、
https://oshiete.goo.ne.jp/qa/13531880.html
inpCount=0の時はどうなるのか教えていただけると嬉しいです。whileループの所です。教えていただけると嬉しいです。

A 回答 (9件)

>例えば、⑥は、inpDataに2が格納されていて、最初に宣言した、inpTotal=0と、inpData=2を足し合わせるというような感じでしょうか?



はい、その通りです。
    • good
    • 0

>⑥はどのような動作を実行するのでしょうか?



inpTotal+=inpData;・・・・⑥
この行は
inpTotalへinpDataを加算しています。
    • good
    • 0
この回答へのお礼

例えば、⑥は、inpDataに2が格納されていて、最初に宣言した、inpTotal=0と、inpData=2を足し合わせるというような感じでしょうか?教えていただけると嬉しいです。

お礼日時:2023/07/22 22:57

>では、④が完了した時に、例えば、inpDataに2をセットできるというような事でしょうか?



はい、その通りです。
    • good
    • 1
この回答へのお礼

ありがとございます。それでもう一つ質問しますが⑥はどのような動作を実行するのでしょうか?教えていただけると嬉しいです。

お礼日時:2023/07/22 19:29

>では、inpCount=0の時は、inpDataには値は取り込まれないのでしょうか?



上記の意味が、よく分かりませんが、inpDataに値が取り込まれるのは以下のタイミングです。

int inpData;
int inpCount = 0;・・・・・・・①
int inpTotal = 0;
float heikin;
while(inpCount<5)・・・・・・・②
{
printf("input ? 1 2 3 4 10");・・・③
scanf("%d",&inpData);・・・・・・・④
inpCount++;・・・・・・・・・・・・⑤
inpTotal+=inpData;・・・・・・・・⑥
}


①でinpCountに0がセットされます。(この時点ではinpDataには値は取り込まれせん)
②(0<5)が成立します。(この時点ではinpDataには値は取り込まれせん)
 従って、③、④、⑤、⑥が順に実行されます。
③を実行します。(この時点ではinpDataには値は取り込まれせん)
④を実行します。(この処理でinpDataに値が取り込まれます)
④が完了した時、inpDataに値がセットされています。
この時点で、inpCountの値は0のままです。
⑤でinpCountに1加算されます。
⑤が完了すると、inpCountの値は1になります。
    • good
    • 0
この回答へのお礼

では、④が完了した時に、例えば、inpDataに2をセットできるというような事でしょうか?教えていただけると嬉しいです。

お礼日時:2023/07/22 15:41

No3で


InpCountの値
0 < 5 なので処理を行う。・・・1回目
1 < 5 なので処理を行う。・・・2回目
2 < 5 なので処理を行う。・・・3回目
3 < 5 なので処理を行う。・・・4回目
4 < 5 なので処理を行う。・・・5回目
5 < 5 なので処理を行わない。・・・6回目

と書きましたが、
while(条件)
{
 処理
}
の処理のことです。
処理は
printf("input ? 1 2 3 4 10");
scanf("%d",&inpData);
inpCount++;
inpTotal+=inpData;
になります。

言い換えれば、
InpCountの値
0 < 5 なので以下の処理を行う。・・・1回目
printf("input ? 1 2 3 4 10");
scanf("%d",&inpData);
inpCount++;
inpTotal+=inpData;

1 < 5 なので以下の処理を行う。・・・2回目
printf("input ? 1 2 3 4 10");
scanf("%d",&inpData);
inpCount++;
inpTotal+=inpData;

2 < 5 なので以下の処理を行う。・・・3回目
printf("input ? 1 2 3 4 10");
scanf("%d",&inpData);
inpCount++;
inpTotal+=inpData;

3 < 5 なので以下の処理を行う。・・・4回目
printf("input ? 1 2 3 4 10");
scanf("%d",&inpData);
inpCount++;
inpTotal+=inpData;

4 < 5 なので以下の処理を行う。・・・5回目
printf("input ? 1 2 3 4 10");
scanf("%d",&inpData);
inpCount++;
inpTotal+=inpData;

5 < 5 なので処理を行わない。・・・6回目

ということです。
    • good
    • 0
この回答へのお礼

では、inpCount=0の時は、inpDataには値は取り込まれないのでしょうか?
詳しく教えていただけると嬉しいです。

お礼日時:2023/07/22 14:18

>では、inpCountが0から4まで処理を行いますが、inpCount=0の時どうやってinpDataにセットしているのでしょうか?


>inpCount=0の場合、1増やすだけで終わりなのでしょうか?

inpDataに値をセットするのは
scanf("%d",&inpData); の行です。
画面から入力した数字を整数にして、inpDataに取り込みます。
inpCountに1加算するのは、inpCount++; の行です。
    • good
    • 0

InpCountの値


0 < 5 なので処理を行う。・・・1回目
1 < 5 なので処理を行う。・・・2回目
2 < 5 なので処理を行う。・・・3回目
3 < 5 なので処理を行う。・・・4回目
4 < 5 なので処理を行う。・・・5回目
5 < 5 なので処理を行わない。・・・6回目

上記のようになります。5回目まで行われます。
    • good
    • 0
この回答へのお礼

では、inpCountが0から4まで処理を行いますが、inpCount=0の時どうやってinpDataにセットしているのでしょうか?inpCount=0の場合、1増やすだけで終わりなのでしょうか?教えていただけると嬉しいです。

お礼日時:2023/07/22 12:49

>すみません。

InpCount=0の時からinpDataに数字をセットする事は可能なのでしょうか?

やろうと思えば、できますが、
scanf("%d",&inpData);で
inpDataに値が設定されてしまうので、上書きされてしまいます。

それを承知で、するなら、
int inpData;

int inpData = 設定したい値;
としておけば良いです。
設定した値が0なら、
int inpData = 0;
とします。
    • good
    • 0
この回答へのお礼

すみません。何故、そのプログラムで、数字が5個読み込めるのでしょうか?4個しか読み込めないような気がするのですが。詳しく教えていただけると嬉しいです。

お礼日時:2023/07/22 11:18

while文は、以下の規則に従い動作します。


while(条件)
{
 処理
}

条件が、成立する間、処理が行われます。

ここで、条件は
inpCount<5 です。

処理は
printf("input ? 1 2 3 4 10");
scanf("%d",&inpData);
inpCount++;
inpTotal+=inpData;
になります。



①1回目のwhile(inpCount<5)について
inpCount=0なので、条件は
0<5 なので、条件が成立し、処理が行なわれます。
つまり
printf("input ? 1 2 3 4 10");
scanf("%d",&inpData);
inpCount++;
inpTotal+=inpData;
が実行されます。
ここで、inpCount++によりinpCountに1加算されます。

②2回目のwhile(inpCount<5)について
この時の条件は、inpCount=1なので
1<5 となり成立し、同様に処理が行われます。
つまり
printf("input ? 1 2 3 4 10");
scanf("%d",&inpData);
inpCount++;
inpTotal+=inpData;
が実行されます。

③6回目のwhile(inpCount<5)について
これを繰り返して、inpCountが5になると
5<5 の条件が成立しません。
従って、while文を終了し、
heikin=(float)inpTotal/(float)inpCount;
が実行されます。
    • good
    • 0
この回答へのお礼

すみません。InpCount=0の時からinpDataに数字をセットする事は可能なのでしょうか?教えていただけると嬉しいです。

お礼日時:2023/07/22 10:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています