プログラムのエンドユーザーに、華氏から摂氏に変換したい値をCで入力するように促すにはどうすればよいのでしょうか。
基本的に、私は合計n00bであり、次のようなすばらしい「プログラム」を書いているので、次のようになります。
//Simple program to convert Fahrenheit to Celsius
int main (int argc, char *argv[])
{
double celsius, fahrenheit, result;
celsius = result;
fahrenheit = 27;
result = (fahrenheit - 32) / 1.8;
printf("27 degress Fahrenheit is %g degrees Celsius!", result);
return 0;
}
私の言いたいことを知っているなら、実際の「機能」を追加したいと思います。これをテストプログラムにして、単純な算術式の評価を実際に示すのではなく、実際に少しだけ役立つようにしたいと思います。
とにかく、 scanf(3)のマニュアルページにリストされている関数を使用して、ユーザーが入力したデータの認識を支援し、それを華氏変数に格納できるかどうか疑問に思いました。
さて、プログラムの実行時に、エンドユーザーに摂氏から華氏への変換を希望するのか、華氏から摂氏への変換を希望するのかを尋ねる質問をすることができれば、本当にすばらしいでしょう。しばらくして、私の本の「意思決定」の章を読むまで待ちます!:)
アップデート:
kiamlalunoによって指摘されたように、役に立たない変数の結果を削除します。
//Simple program to convert Fahrenheit to Celsius
int main (int argc, char *argv[])
{
double fahrenheit, celsius;
fahrenheit = 27;
celsius = (fahrenheit - 32) / 1.8;
printf("27 degress Fahrenheit is %g degrees Celsius!", celsius);
return 0;
}
更新更新:
ここに投稿されたすべての人の役立つ提案を取り入れようとしていますが、コードでさらに問題が発生しています。
//Simple program to convert Fahrenheit to Celsius and Celsius to Fahrenheit
int main (int argc, char *argv[])
{
int celsius, fahrenheit, celsiusResult, fahrenheitResult;
celsiusResult = (fahrenheit - 32)*(5/9);
fahrenheitResult = (celsius*(9/5)) + 32;
int prompt;
printf("Please press 1 to convert Fahrenheit to Celsius, or 0 to convert Celsius to Fahrenheit please:\n ");
scanf("%i", &prompt);
if(prompt == 1) {
printf("Please enter a temperature in Fahrenheit to be converted into Celsius!:\n");
scanf("%i", &fahrenheit);
printf("%i degress Fahrenheit is %i degrees Celsius!", fahrenheit, celsiusResult);
}
else {
printf("Please enter a temperature in Celsius to be converted into Fahrenheit:\n");
scanf("%i", &celsius);
printf("%i degreses Celsius is %i degrees Fahrenheit", celsius, fahrenheitResult);
}
return 0;
}
計算自体が完全に間違っていることを除いて、すべてがうまく機能しています。一瞬、これは数値自体を整数型に変更したためかもしれないと思いましたが、もう一度2倍にしましたが、それでもちょっと厄介でした。
何かご意見は?