错
#include <stdio.h>int main()
{
int x, y, z, max;
printf("3numbers :");
scanf("%d%d%d", x, y, z);
if(x < y)
{
max = y;
if(y < z)
{
max = z;
}
else
{
max = y;
}
}
else if(x > z)
max = x;
else
max = z;
printf("%d", max);
return 0;
}
哪里错了 代码中的错误在于scanf函数的参数传递方式,应该传递变量的地址而不是变量的值。修改后的代码如下:
#include <stdio.h>
int main()
{
int x, y, z, max;
printf("3 numbers: ");
scanf("%d%d%d", &x, &y, &z);// 修正这一行的代码
if(x < y)
{
max = y;
if(y < z)
{
max = z;
}
else
{
max = y;
}
}
else if(x > z)
max = x;
else
max = z;
printf("The maximum number is: %d\n", max);// 添加换行符和输出提示信息
return 0;
}
这样修改后,代码将能正确读取用户输入的三个数字,并输出其中最大的数字。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 本帖最后由 jackz007 于 2023-12-25 10:13 编辑
#include <stdio.h>
int main(void)
{
int x , y , z ;
printf("3 numbers :") ;
scanf("%d%d%d", & x, & y, & z) ; // 这一行有错,值类型变量必须提交变量的内存地址而不是变量本身
printf("%d\n" , (x > y && x > z) ? x : (y > x && y > z) ? y : z) ; // 挑最大、最小值的问题还是上三目运算最安逸
return 0 ;
}
页:
[1]