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

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

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

#1

投稿記事 by きょうとき » 10年前

身長と体重を入力すると標準体重  (身長ー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;
}

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

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

#2

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

コードを提示するときはBBcodeを有効にした状態でcodeタグで囲んでいただけると、見やすくてありがたいです。

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

きょうとき
記事: 2
登録日時: 10年前

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

#3

投稿記事 by きょうとき » 10年前

返信ありがとうございます。初めての投稿でしたので、次回からBBcodeを有効にした状態でcodeタグでコードを囲むよう気を付けます。

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

閉鎖

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