重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

c言語の問題を教えて欲しいです。double 型配列 a[] にキーボードから 1 つずつ実数を入力し、その値が 0 以上 5 以下のときにはそれまでに入力した値の平均を表示し、入力値が実数でないか、0 未満である か、5 より大きければ、いままでのデータをすべて表示して終了するプログラムを作成せよ。ただし、実 数の入力数は 100 回以下とする。という問題です。自分は下記のように書いたのですがうまく実行できません。どこが違うのか教えて欲しいです。
#include<stdio.h>


int main(void){
double a[];
int i,count,push;

count=0;
push=0;

while(push<=100){
printf("number=");
scanf("%lf",&a[i]);
count++;
push++;

if(i>=0&&i<=5){
printf("Ave=%lf\n",a[i]/count);
}else{
printf("%lf",a[]);
break;
}

}
return 0;
}

A 回答 (2件)

> どこが違うのか教えて欲しい



問題がおかしいです。

> その値が 0 以上 5 以下のときにはそれまでに入力した値の平均を表示し、入力値が実数でないか、0 未満である か、5 より大きければ、いままでのデータをすべて表示して終了するプログラムを作成

この条件をマトモに捉えると、「どんな値を入力しようが即座に終了する」プログラムになります。
好意的に解釈すると、

・入力した数値xが実数なのか整数なのか
・入力した数値xが0 <= x <= 5なのかx < 0なのかx > 5なのか

と言う条件に分けられるんですが、一方、これらを同時に満たす場合、何らかの優先順位が必要なのね。
ところがこの問題のままだとその優先順位がハッキリしない。
よって、この問題は、仕様だとすればバグを含む仕様なので実装しても意味が全くありません、
    • good
    • 0

>いままでのデータをすべて表示して終了するプログラムを作成せよ。

ただし、実 数の入力数は 100 回以下とする。
100回分のデータ格納領域が必要
    • good
    • 0

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