- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:printfでの計算結果がおかしくなります。)
printfでの計算結果がおかしくなる問題
このQ&Aのポイント
- C言語のプログラムで、scanfで入力した3つの整数を掛け算して計算結果を表示するprintf文が、正しい答えを出力しない問題が発生しています。
- 具体的には、10000×10000×10000の計算結果が-727379968となってしまいます。
- プログラムは正しくコンパイルされており、ソースコードに問題はないと考えられます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
計算の過程でanswerの扱える整数の範囲を超えているからです。 ためしに、 #include <stdio.h> #include <limits.h> int main(void) { printf("%d\n", INT_MAX); return (0); } というプログラムを動かしてみてください。これがint型で扱える最大の数です。 回避策は...doubleでも使ってください。 #include <stdio.h> int main(void) { double first_num, second_num, third_num; /* 入力される3整数 */ double answer; /* 掛け算の答え */ printf("Input Integer Number 1 > "); scanf("%lf", &first_num); printf("Input Integer Number 2 > "); scanf("%lf", &second_num); printf("Input Integer Number 3 > "); scanf("%lf", &third_num); answer = first_num * second_num * third_num; printf("%f * %f * %f= %f\n", first_num, second_num, third_num, answer); return (0); }
その他の回答 (1)
- S-Fuji
- ベストアンサー率36% (592/1624)
回答No.2
そんな大きな数値は、intでは表せません。
お礼
ありがとうございます。doubleを使えば無事解決しました!!