int main()
{
int a,b,c,d,max;
scanf("%f,%f,%f,%f",&a,&b,&c,&d);
max=(a>b)?a:b;
max=(max>c)?max:c;
max=(max>d)?max:d;
printf("%f\n",max);
return 0;
}
将%f换成%d能成功运行,为什么%f不行
int main()
{
int a,b,c,d,max;
scanf("%f,%f,%f,%f",&a,&b,&c,&d);
max=(a>b)?a:b;
max=(max>c)?max:c;
max=(max>d)?max:d;
printf("%f\n",max);
return 0;
}
将%f换成%d能成功运行,为什么%f不行
参考GPT和自己的思路:在这段代码中,输入的是四个整数,但是使用了错误的格式控制字符串"%f"来接收输入。"%f"是用来接收浮点数的格式控制字符串,而输入的是整数,所以应该使用"%d"来接收。由于使用了错误的格式控制字符串,导致输入的整数无法正确转换为浮点数,最终导致程序运行时出现错误。