ページ 11

変数が代入されていない?

Posted: 2015年4月30日(木) 00:17
by きょうとき
身長と体重を入力すると標準体重  (身長ー100)*0.9
を計算して表示するプログラミングを作成せよ。という課題をやっているのですが、どうしても標準体重がうまく表示されず、
結果が -90.0000000kg となってしまいます。どこに問題があるのでしょうか。
#include <stdio.h>

int main(void)
{
double x, y, std;

printf("身長:");
scanf("%f", &x);

printf("体重:");
scanf("%f", &y);

std=(x-100.0)*0.9;

printf("あなたの標準体重は%fkgです。\n", std);

return 0;
}

Re: 変数が代入されていない?

Posted: 2015年4月30日(木) 00:20
by みけCAT
コードを提示するときはBBcodeを有効にした状態でcodeタグで囲んでいただけると、見やすくてありがたいです。

2箇所のscanfにおいて、書式指定と代入先の型が合っていません。
x,yはdouble型なので、scanfにおいては%fではなく%lfを用いないといけません。(printfでは%fでいいです)
このようなミスを警告してくれる、-Wall -Wextraオプションを付けたgcc 4.8.1などのコンパイラを用いることをおすすめします。

Re: 変数が代入されていない?

Posted: 2015年4月30日(木) 00:31
by きょうとき
返信ありがとうございます。初めての投稿でしたので、次回からBBcodeを有効にした状態でcodeタグでコードを囲むよう気を付けます。

こんなところに気付けなかったなんて…課題をやりつつ、%fや%lfなどの使い方を復習しておこうと思います。
また、今回のようなミスを見つけてくれるコンパイラも紹介していただき、大変助かりました。