while文を用いて平均値以下の値を求めるプログラムにおいて、0以下の値が入力されたときにそれまでの値の平均を取るようにしたいのですが、どのように組めばよろしいでしょうか。(0以下は含まない)
見当がつかないので、教えていただけると助かります。
とりあえず、試しに考えてみたところ、以下のようになりました。
正直やってることが全然違っていると思いますが、そこも含めご指摘お願いします。
※while文の使い方,breakの使い方がいまいちわかっていない状況です。
#include<stdio.h>
#define NUM 10000
int main(void)
{
int Num=0;
double test[NUM];
double dnumSum = 0;
double dnumAve = 0;
int i=1;
int j;
printf("データの数を入力してください。\n"); scanf("%d", &Num); while (Num <= 0) { printf("入力に誤りがあります。入力し直してください。\n"); scanf("%d", &Num); } while (test[i]<0) { printf("データの値を入力してください。\n"); scanf("%lf", &test[i]); i++; break; dnumSum += test[i]; } dnumAve = (double)dnumSum / Num; for (j = 0; j < Num; j++) { if (test[j] <= dnumAve) { printf("平均値以下のデータは%fです。\n",test[j]); } } return 0;
}
回答1件
あなたの回答
tips
プレビュー