ページ 11

初歩の初歩ですがこのプログラムでコンパイルしたら・・・

Posted: 2012年1月06日(金) 00:14
by たくみ
//コピペしたので改行がおかしいことになっておりすいません。
//このプログラムでコンパイルを行うと実行結果が平均=-858993・・・となりました。
//また評価=フになってしまいます。これはどこが間違っているのでしょうか?
/*****************************************************
得点と平均の評価
*****************************************************/
#include<stdio.h>

void main()
{
//変数の宣言
int kokugo; //国語の点
int suugaku; //数学の点
int eigo; //英語の点
double ave; //平均点
char lank; //評価

//代入
kokugo=73;
suugaku=59;
eigo=92;
ave=74.7;
lank='B';


//表示
printf("国語=%d点\n",kokugo);
printf("数学=%d点\n",suugaku);
printf("英語=%d点\n",eigo);
printf("平均=%if点\n評価=%c\n",ave,lank);
}

Re: 初歩の初歩ですがこのプログラムでコンパイルしたら・・・

Posted: 2012年1月06日(金) 00:17
by taketoshi
>printf("平均=%if点\n評価=%c\n",ave,lank);

%ifではなくて%lfです。

エルエフです。

Re: 初歩の初歩ですがこのプログラムでコンパイルしたら・・・

Posted: 2012年1月06日(金) 07:40
by beatle
taketoshi さんが書きました:%ifではなくて%lfです。
そもそもprintfでは%lfは使いません.%fを使います.
個人的に凄く納得する説明:http://www.kouno.jp/home/c_faq/c15.html#2

Re: 初歩の初歩ですがこのプログラムでコンパイルしたら・・・

Posted: 2012年1月06日(金) 12:23
by 初級者
平均というのは、全部の点数を合計して3で割ることに意味があるのではないでしょうか。
即値を代入してどうするんでしょうか。

Re: 初歩の初歩ですがこのプログラムでコンパイルしたら・・・

Posted: 2012年1月06日(金) 12:39
by Ryo
推測ですが

プログラムがうまくいかないので
どこに問題があるかを調べるため
計算部分をとりあえず除いて、直接、値をいれてみた段階のモノではないでしょうか?

Re: 初歩の初歩ですがこのプログラムでコンパイルしたら・・・

Posted: 2012年1月06日(金) 13:29
by たくみ
これは、直接値を入れて間違いを探すためにプログラムミングしました。
(参考書のプログラムです)

Re: 初歩の初歩ですがこのプログラムでコンパイルしたら・・・

Posted: 2012年1月06日(金) 17:27
by Cr
正しい答えはもう皆さんが書いてくれてるので省略します。

評価の方は

コード:

printf("平均=%if点\n%d評価=%c\n",ave,lank);
とやったところ「評価」の前に良く分からない数字が並び「評価=B」と表示されました
おそらく%ifが正しくないのでaveの値の一部が残っていたのではないでしょうか?

コード:

printf("平均=%if点\n",ave);
printf("評価=%c\n",lank);
これでも評価の方は正しい値が出ました

Re: 初歩の初歩ですがこのプログラムでコンパイルしたら・・・

Posted: 2012年1月08日(日) 01:20
by たくみ
みなさんありがとうございます。
皆さんの言ったとおりlfがifになっていました。
こんな小さい質問で回答してくれた方に感謝です^^;

Re: 初歩の初歩ですがこのプログラムでコンパイルしたら・・・

Posted: 2012年1月08日(日) 02:41
by かずま
たくみ さんが書きました:皆さんの言ったとおりlfがifになっていました。
%.1f が %if になっていたのではありませんか?
本当に %f で満足できますか?