解決済みのQ&A
C言語のプログラミングです。 課題で温度を、摂氏で入力し、華氏に変換し、表示す...
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
ベストアンサーに選ばれた回答
「考えてください」と言われたのだから、ちゃんと考えましょうよ。
じゃないと全く意味がありませんよ。
その上で「分からない」のであれば、本来聞く相手は先生だと思いますが・・・
少なくとも一点「整数とは限らない」という大きなヒントがあるんですから、そこから手を付けてみては?
プログラムを見ると整数の入力にしか対応できていませんよね。
あと「相応しいと思われるデータ型を」と言われているのだから、妥当ではないデータ型が使われているということです。
(全部double型になってるけど、それでいいのか?と)
元のプログラムを自分で作れたのであれば、解決できると思います。
めげずに再度よく考えて見直してみてください。
- 違反報告
- 回答日時:2012/11/27 14:52:40
この質問は投票によってベストアンサーが選ばれました!
ベストアンサー以外の回答
(1件中1〜1件)
#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が決めることです。ただし、話し合いで決めることもあります。
顧客が小数点以下の入力・出力は不要だと言えば、それに従うだけです。
学校の課題なら先生が仕様を明確にしていないだけです。
- 違反報告
- 回答日時:2012/11/27 15:46:48