• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:printfでの計算結果がおかしくなります。)

printfでの計算結果がおかしくなる問題

このQ&Aのポイント
  • C言語のプログラムで、scanfで入力した3つの整数を掛け算して計算結果を表示するprintf文が、正しい答えを出力しない問題が発生しています。
  • 具体的には、10000×10000×10000の計算結果が-727379968となってしまいます。
  • プログラムは正しくコンパイルされており、ソースコードに問題はないと考えられます。

質問者が選んだベストアンサー

  • ベストアンサー
  • okg00
  • ベストアンサー率39% (1322/3338)
回答No.1

計算の過程で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); }

uruchai
質問者

お礼

ありがとうございます。doubleを使えば無事解決しました!!

その他の回答 (1)

  • S-Fuji
  • ベストアンサー率36% (592/1624)
回答No.2

そんな大きな数値は、intでは表せません。

関連するQ&A