C言語関係掲示板

過去ログ

No.183.数値の総和と平均を求めるプログラム


No.1169

プログラムを教えてください
投稿者---Airin(2002/03/05 22:52:27)


今C言語のテストに向けて勉強しているのですが以下のプログラムのwhileからscanf("%d",&dt)までがなぜそうなるのかよくわかりません。分かる方がいましたら教えて下さい。お願いします。

キーボードから入力された数値(数値)の総和と平均を求める(整数で表示)プログラムです。ただし0が入力された時点で結果を表示後、プログラムを終了します。

#include<stdio.h>
void main(void)
{
int dt=0;
int cnt=0;
int sum=0;

scanf("%d",&dt);
while(dt!=0)
{
sum=sum+dt;
cnt++;
scanf("%d",&dt);
}
printf("Souwa=%d\n",sum);

printf("Heikin=%d\n",sum/cnt);
}

No.1172

Re:プログラムを教えてください
投稿者---ともじ(2002/03/05 23:38:11)


こんばんは。

> 今C言語のテストに向けて勉強しているのですが以下のプログラムのwhileからscanf("%d",&dt)までがなぜ
> そうなるのかよくわかりません。

whileループは「条件が真の間」処理を繰り返します。
つまり、scanfで0以外が入力されている間は処理を繰り返し、sumに入力したdtを
加え続けます。

#include<stdio.h>
void main(void)
{
	int dt=0;
	int cnt=0;
	int sum=0;

	scanf("%d",&dt);		/*  この入力は次のwhileのための入力 */	
				/* ここで0を入力すると、whileループは1回も回らない */
				/* つまり、ループするには0以外を入力すること */
					
	while(dt!=0)		/* ,dtに0以外が入力されたとき、*/
				/* 及び△dtに0以外が入力されている間ループする */
	{
		sum=sum+dt;
		cnt++;
		scanf("%d",&dt);	/*  この入力はwhileループを継続するか否かを */
				/* 決定する。0以外で継続、0で終了する */
	}
	printf("Souwa=%d\n",sum);

	printf("Heikin=%d\n",sum/cnt);
}



No.1173

Re:プログラムを教えてください
投稿者---Airin(2002/03/06 00:22:11)


ともじさん詳しい解説ありがとうございました。
おかげでよくわかりました。C言語はむずかしいですね。わからない所がまだいくつかあります。どうしても自分では解けないと判断したらまた書き込みますので…よろしければまた教えて下さい。それでは勉強再開します。

戻る


「初心者のためのポイント学習C言語」 Last modified:2002.05.14
Copyright(c) 2000-2002 TOMOJI All Rights Reserved