初学者です。
C言語で二つのテストの平均点が60点以上はpass、それ未満はfailと表示させ、さらにそのテストの平均点を少数の第一位まで表示させるプログラムを作りたいのですが、平均点は表示させられるのですが、合否が表示させられません。コンパイルエラーはありませんでした。
どこが間違えているのか教えてほしいです。よろしくお願いします。
C
1#include<stdio.h> 2#define NUM 100 3 4int main(){ 5 int test1,test2; 6 char t[NUM]; 7 printf("Enter the score of 1:"); 8 scanf("%d",&test1); 9 printf("Enter the score of 2:"); 10 scanf("%d",&test2); 11 if ((test1+test2)/2 >= 60) { 12 char t[NUM] = "pass"; 13 }else if(0<=(test1+test2)/2 & (test1+test2)/2<60){ 14 char t[NUM] = "fail"; 15 } 16 printf("%s\n%.1f\n",t,(double)(test1+test2)/2); 17 return 0; 18} 19 20
> 表示させられません。
質問をするときはこの部分をもっと具体的に書きましょう。
「平均点は表示されるが pass, fail が表示されない」「コンパイル時に警告が表示される」など。
matherさん
ご指摘ありがとうございます、追加させていただきます。
> どこが間違えているのか教えてほしいです。
何かの課題でしょうか。ご自身でデバッグして1行1行想定通り動作しているか確認しましたか?
プログラム書いた→コンパイルした→実行した→思った通り動かない→質問しよう
だと回答をいただいても理解できないことも多いです。
dodox86さん
ご指摘ありがとうございます。学校の課題です。これはその課題の中の一部分を質問用にしたものです。本当にわからなくてご指摘通りたくさんの試行を繰り返しても解決できなかったので質問させていただきました。
おそらく、コンパイル時の警告オプションを指定してないのかな、と推測されますが、 -Wallなどのコンパイルオプションを指定しておくと使い方のおかしい部分などを指摘してくれます。
https://zenn.dev/keitean/articles/28f1affef11e08#%E8%AD%A6%E5%91%8A%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3
また、学校の課題であるということならば、Teratailでは推奨されていませんし、わからない部分があるということを先生にも素直に伝えてください。
回答2件
あなたの回答
tips
プレビュー