if文を使ったプログラムで質問です
if文を使ったプログラムで質問です
C言語で質問です。
#include <stdio.h>
void main(void)
{
double ave;
char lank;
printf("平均値:");
scanf("%lf", &ave);
if(ave>100) {
printf("エラー");
}
else if(ave>=75){
lank='A';
}
else if(ave>=50){
lank='B';
}
else if(ave>=25){
lank='C';
}
else if(ave>=0){
lank='D';
}
else{
printf("エラー");
}
printf("\n平均:%7.1lf点 評価:%c\n", ave, lank);
}
数値を入力するとA,B,C,Dのランク付けされて、100を超えた数値と0未満の数値を入力したらエラーと表示したいのですが、
101を入力したら上のプログラムだとエラーとは表示されるのですが下のような表示結果が出てきます。
平均値:101
エラー
平均: 101.0点 評価:
平均と評価は出ないようにしたいです。
なので下のような結果にしたいです。
平均値:101
エラー
どうしたら良いのでしょうか?
return文とかは使わないでください。
初心者なので簡単な感じでお願いします。
#include <stdio.h>
void main(void)
{
double ave;
char lank;
printf("平均値:");
scanf("%lf", &ave);
if(ave>100) {
printf("エラー");
}
else if(ave>=75){
lank='A';
}
else if(ave>=50){
lank='B';
}
else if(ave>=25){
lank='C';
}
else if(ave>=0){
lank='D';
}
else{
printf("エラー");
}
printf("\n平均:%7.1lf点 評価:%c\n", ave, lank);
}
数値を入力するとA,B,C,Dのランク付けされて、100を超えた数値と0未満の数値を入力したらエラーと表示したいのですが、
101を入力したら上のプログラムだとエラーとは表示されるのですが下のような表示結果が出てきます。
平均値:101
エラー
平均: 101.0点 評価:
平均と評価は出ないようにしたいです。
なので下のような結果にしたいです。
平均値:101
エラー
どうしたら良いのでしょうか?
return文とかは使わないでください。
初心者なので簡単な感じでお願いします。
Re:if文を使ったプログラムで質問です
bool error = false;
if( avg > 100 )
error = true;
...
if( error == false )
printf( "\n平均..." );
ではどうでしょう?
if( avg > 100 )
error = true;
...
if( error == false )
printf( "\n平均..." );
ではどうでしょう?
Re:if文を使ったプログラムで質問です
> 初心者用のプログラムにしてもらえませんか?
こういうこと?
_Bool error = 0;
そもそも初心者なら、利用規約を熟読して、余計な手間を省く努力をしましょう。
こういうこと?
_Bool error = 0;
そもそも初心者なら、利用規約を熟読して、余計な手間を省く努力をしましょう。
Re:if文を使ったプログラムで質問です
Boolというのはまだ習っていません。
エラーのときは平均と評価を出さないようにしたいのですが。
やっぱそういうのを使わないと無理なんでしょうか?
エラーのときは平均と評価を出さないようにしたいのですが。
やっぱそういうのを使わないと無理なんでしょうか?
Re:if文を使ったプログラムで質問です
今覚えるか、int宣言でやるかですね。
//bool error = false;
int error=0;
if( avg > 100 )
// error = true;
error = 1;
...
//if( error == false )
if( error == 0 )
printf( "\n平均..." );
簡単にはこういうこと。(のはず…
dicさんのコピーさせていただきました。
//bool error = false;
int error=0;
if( avg > 100 )
// error = true;
error = 1;
...
//if( error == false )
if( error == 0 )
printf( "\n平均..." );
簡単にはこういうこと。(のはず…
dicさんのコピーさせていただきました。
Re:if文を使ったプログラムで質問です
ちなみに、bool, true, falseといったマクロを使うには、<stdbool.h>をインクルードする必要があります。
> C言語で質問です。
とのことですので...
> C言語で質問です。
とのことですので...
Re:if文を使ったプログラムで質問です
一番簡単なのは最後にも条件をつける。
if(ave<=100)
printf("\n平均:%7.1lf点 評価:%c\n", ave, lank);
if(ave<=100)
printf("\n平均:%7.1lf点 評価:%c\n", ave, lank);
Re:if文を使ったプログラムで質問です
なんとか出来ました。
#include <stdio.h>
void main(void)
{
double ave;
char lank;
printf("平均値:");
scanf("%lf", &ave);
if(ave>100)
{
printf("エラー\n");
}
else if(ave>=75)
{
lank='A';
}
else if(ave>=50)
{
lank='B';
}
else if(ave>=25)
{
lank='C';
}
else if(ave>=0)
{
lank='D';
}
else
{
printf("エラー\n");
}
if(ave<=100)
{
if(ave>=0)
{
printf("平均:%7.1lf点 評価:%c\n", ave, lank);
}
}
}
これでエラーのときは平均と評価が出ないようになりましたが、コンパイルは通ったのですがプログラム的にはおかしいというところは無いでしょうか?
ifの中にifとかやっちゃったんですが大丈夫だったでしょうか?
#include <stdio.h>
void main(void)
{
double ave;
char lank;
printf("平均値:");
scanf("%lf", &ave);
if(ave>100)
{
printf("エラー\n");
}
else if(ave>=75)
{
lank='A';
}
else if(ave>=50)
{
lank='B';
}
else if(ave>=25)
{
lank='C';
}
else if(ave>=0)
{
lank='D';
}
else
{
printf("エラー\n");
}
if(ave<=100)
{
if(ave>=0)
{
printf("平均:%7.1lf点 評価:%c\n", ave, lank);
}
}
}
これでエラーのときは平均と評価が出ないようになりましたが、コンパイルは通ったのですがプログラム的にはおかしいというところは無いでしょうか?
ifの中にifとかやっちゃったんですが大丈夫だったでしょうか?
Re:if文を使ったプログラムで質問です
多分まだ知らないのだと思いますが、
if(ave<=0 && 100<=ave)
という書き方があります。
他にも「||」とかもあります。
その辺は勉強していけば、すぐわかりますよ。
あとif文の中にif文を書いても問題はありません。
=========
すでに解決になっていたのでこっそり。
ちょこっと短くしてみた。
#include <stdio.h>
void main(void){
double ave;
char lank;
printf("平均値:");
scanf("%lf", &ave);
if(ave<0 || 100<ave){
printf("エラー");
}
else{
lank='D'-(int)ave/25+(int)ave/100;
printf("\n平均:%7.1lf点 評価:%c\n", ave, lank);
}
}

if(ave<=0 && 100<=ave)
という書き方があります。
他にも「||」とかもあります。
その辺は勉強していけば、すぐわかりますよ。
あとif文の中にif文を書いても問題はありません。
=========
すでに解決になっていたのでこっそり。
ちょこっと短くしてみた。
#include <stdio.h>
void main(void){
double ave;
char lank;
printf("平均値:");
scanf("%lf", &ave);
if(ave<0 || 100<ave){
printf("エラー");
}
else{
lank='D'-(int)ave/25+(int)ave/100;
printf("\n平均:%7.1lf点 評価:%c\n", ave, lank);
}
}
