4つの整数の最大値を求める以下のコードを作成し、実行したところ、
C言語
1//4つの整数の最大値 2#include <stdio.h> 3 4int max2(int a, int b) { 5 return (a > b) ? a : b; 6} 7 8int max4(int a, int b, int c, int d) { 9 return max2(max2(a, b), max2(c, d)); 10} 11 12int main(void) { 13 int n1, n2, n3, n4; 14 15 puts("4つの整数を入力せよ。"); 16 printf("整数n1 : "); 17 scanf("%d", &n1); 18 printf("整数n2 : "); 19 scanf("%d", &n2); 20 printf("整数n3 : "); 21 scanf("%d", &n3); 22 printf("整数n4 : "); 23 scanf("%d", &n4); 24 printf("最大値は%d\n", max4(n1, n2, n3, n4)); 25 26 return 0; 27}
ターミナルでは次のように、なった。
4つの整数を入力せよ。 整数n1 : 1233333333333333333333333 整数n2 : 2121 整数n3 : 21 整数n4 : 2 最大値は2121
最大値がなぜ 1233333333333333333333333にならないのかわからない。
また、次のようにすると
4つの整数を入力せよ。 整数n1 : 1234 整数n2 : 2345 整数n3 : 3456 整数n4 : 4567 最大値は4567
最大値は予想通り4567になる。
試しに、次のようにすると、
4つの整数を入力せよ。 整数n1 : 1111111111111111 整数n2 : 111111111111111 整数n3 : 11111111111111 整数n4 : 1111111111111 最大値は307163591
最大値が307163591と意味不明な数字になった。
最大値が予想通りにならないのはなぜか、また、なぜ307163591のような数字が表示されるのか教えてください。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/03 15:51
2020/11/03 21:53
2020/11/03 23:28