ここから本文です

解決済みのQ&A

C言語のプログラミングです。 課題で温度を、摂氏で入力し、華氏に変換し、表示す...

aerosmith_kun_desuさん

C言語のプログラミングです。
課題で温度を、摂氏で入力し、華氏に変換し、表示するプログラムを作ってるんですが、

#include<stdio.h>

main()
{
double fahr, celsius, number, ch;

printf("Input temperature? ");

number=0;

ch = getchar();
while(ch != '\n'){
if('0' <= ch && ch <= '9'){
number = number * 10;
number = number + (ch - '0');

}
ch = getchar();
}

celsius = number;

fahr = (9.0/5.0) * celsius + 32.0;

printf("Celsius %2.0f is same to Fahrenheit %6.1f\n",number ,fahr );

}

を作ったのですが
各変数について、その役割や目的を、もう一度見直してください。
そして、それに相応しいと思われるデータ型を考えてください。
また、摂氏温度の扱い(温度なので、整数とは限らない)
と言われましたどのように訂正すればいいかわかりません。
教えてください。

  • 質問日時:
    2012/11/27 13:30:11
  • 解決日時:
    2012/12/12 03:27:16
  • 閲覧数:
    324
    回答数:
    2

ベストアンサーに選ばれた回答

fooooo_baaaarさん

「考えてください」と言われたのだから、ちゃんと考えましょうよ。
じゃないと全く意味がありませんよ。
その上で「分からない」のであれば、本来聞く相手は先生だと思いますが・・・

少なくとも一点「整数とは限らない」という大きなヒントがあるんですから、そこから手を付けてみては?
プログラムを見ると整数の入力にしか対応できていませんよね。
あと「相応しいと思われるデータ型を」と言われているのだから、妥当ではないデータ型が使われているということです。
(全部double型になってるけど、それでいいのか?と)

元のプログラムを自分で作れたのであれば、解決できると思います。
めげずに再度よく考えて見直してみてください。

この質問は投票によってベストアンサーが選ばれました!

ベストアンサー以外の回答

(1件中1〜1件)

 

qwertyuio3456さん

#include<stdio.h>

int main(void)
{
double fahr,celsius;

printf("Input temperature? ");
scanf("%lf",&celsius);
fahr=(9.0/5.0)*celsius+32.0;

printf("Celsius %2.2f is same to Fahrenheit %6.2f\n",celsius,fahr);

return 0;
}

誰に指摘されたのかわかりませんが、実際(仕事)のプログラミングでは、入力値の摂氏温度、出力値の華氏温度の範囲や桁数(整数部、小数部)などは、プログラムする側が考えることではないです。
注文側(顧客等)やSEが決めることです。ただし、話し合いで決めることもあります。
顧客が小数点以下の入力・出力は不要だと言えば、それに従うだけです。
学校の課題なら先生が仕様を明確にしていないだけです。

Q&Aをキーワードで検索:

PR

総合Q&Aランキング

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。

知恵コレに追加する

閉じる

知恵コレクションをするID/ニックネームを選択し、「追加する」ボタンを押してください。
※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。

ほかのID/ニックネームで利用登録する