難しいです。助けてください

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
みいさん
記事: 2
登録日時: 2年前

難しいです。助けてください

#1

投稿記事 by みいさん » 2年前

レポート課題として、条件文、繰り返し文、配列、関数(含むポインタ)の4つの機能を活用するプログラムの作成を行う課題があります。苦手ながら、教科書を参考にして作成しましたが完成しません。作りたいプログラムは「一週間の睡眠時間を入力して平均睡眠時間を算出し、人間に必要な睡眠時間を満たしているか否かを求めるプログラム」を作りたいと考えています。ご助力お願い致します。



#include<stdio.h>
#define NUMBER 7
int day[NUMBER];
int average(void);

int main(void)
{
int i;
int sum = 0;

printf("%d日目の睡眠時間を入力してください。\n",NUMBER);
for(i=0;i<NUMBER;i++){
printf("%d日目:",i+1);
scanf("%d日目",&day);
sum+=day;
}
printf("平均睡眠時間=%d\n",average());
if(average>=6)
puts("一週間の平均睡眠時間より、あなたは十分な睡眠をとることができています。");
else
puts("一週間の平均睡眠時間より、あなたは十分な睡眠をとることができていません。");
return 0;
}
int average(void)
{
int i;
int average = day[0];

for(i=0;i<day;i++){
sum+=day;
}
average=sum/NUMBER;
return 0;
}

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: 難しいです。助けてください

#2

投稿記事 by みけCAT » 2年前

ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、
BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただけると、
見やすくてありがたいです。

例えば、average関数で
・変数sumを定義する
・day[0]を二重に足さないようにする
・配列ではなく要素数をループの条件に使う
・計算結果を返す
とし、main関数ではif文の中でもaverage関数を呼ぶようにすると、とりあえず動作は改善するでしょう。

コード:

#include<stdio.h>
#define NUMBER 7
int day[NUMBER];
int average(void);

int main(void)
{
 int i;
 int sum = 0;

 printf("%d日目の睡眠時間を入力してください。\n",NUMBER);
 for(i=0;i<NUMBER;i++){
 	printf("%d日目:",i+1);
 	scanf("%d日目",&day[i]);
 	sum+=day[i];
 }
 printf("平均睡眠時間=%d\n",average());
  if(average()>=6) /* if文の中でもaverage関数を呼ぶようにする */
  	puts("一週間の平均睡眠時間より、あなたは十分な睡眠をとることができています。");
  else
    puts("一週間の平均睡眠時間より、あなたは十分な睡眠をとることができていません。");
 return 0;
 }
 int average(void)
{
int i;
int sum = day[0]; /* 変数sumを定義する */

for(i=1;i<NUMBER;i++){ /* day[0]を二重に足さないようにする、配列ではなく要素数をループの条件に使う */
	sum+=day[i];
}
return sum/NUMBER; /* 計算結果を返す */
}
オフトピック
他の回答者さんへ
掲示板の配慮を欠いた設計により、[​i]が斜体タグとみなされて表示されなくなっています。
コードは引用画面から確認するといいでしょう。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

みいさん
記事: 2
登録日時: 2年前

Re: 難しいです。助けてください

#3

投稿記事 by みいさん » 2年前

返信ありがとうございます!
ソースコードについてはこれから気を付けて表示します。助言感謝いたします。
わかりやすく解説を挟んでいただき、とても分かりやすいです。
編集箇所がまだあるので改善していきます。
ありがとうございました!

返信

“C言語何でも質問掲示板” へ戻る