|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
学校作业,求解答:
题目要求如下:
从键盘输入3个整数,输出绝对值最大的数。编程可用素材:printf("Input 3 numbers: ")、printf("\nThe number with maximum absolute value is ….\n"…。
程序的运行效果应类似地如图1所示,图1中的红色部分是从键盘输入的内容。
Input 3 numbers: 1, -362, 300
The number with maximum absolute value is -362.
接下来是我写的程序:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int num1, num2, num3, abs1, abs2, abs3, max;
printf("Input 3 numbers: ");
scanf("%d,%d,%d", &num1, &num2, &num3);
abs1 = abs(num1);
abs2 = abs(num2);
abs3 = abs(num3);
if (abs1 >= abs2 && abs1 >= abs3)
{
max = num1;
}
else if (abs2 >= abs1 && abs2 >= abs3)
{
max = num2;
}
else if (abs3 >= abs1 && abs3 >= abs2)
{
max = num3;
}
printf("\nThe number with maximum absolute value is %d.\n", max);
return 0;
}
运行结果是这样的:
Input 3 numbers: 1 -362 300
The number with maximum absolute value is -858993460.
Press any key to continue
请问这是为什么?
本帖最后由 昨非 于 2021-1-9 15:48 编辑
输入以英文逗号隔开
亲测:Input 3 numbers: 1,-365,300
The number with maximum absolute value is -365.
原因在于,你的scanf格式串里是以,隔开的 scanf("%d,%d,%d", &num1, &num2, &num3);
|
|