在下刚来,还望多关照
#include<stdio.h>
void main()
{
double a,b,c,d;
printf(“plese input four numbers:”);
scanf(“%d,%d,%d,%d”,&a,&b,&c,&d);
if(a>b) a=a;
else a=b;
if(c>d) c=c;
else c=d;
printf(“the largest number is:%d\n”,a>c? a:c);
}本来想求最大值,结果却只显示输入的第一个值。
void main()
{
double a,b,c,d;
printf(“plese input four numbers:”);
scanf(“%d,%d,%d,%d”,&a,&b,&c,&d);
if(a>b) a=a;
else a=b;
if(c>d) c=c;
else c=d;
printf(“the largest number is:%d\n”,a>c? a:c);
}本来想求最大值,结果却只显示输入的第一个值。
帮帮我吧
>> 本文固定链接: http://www.vcgood.com/archives/3612
这个是因为你定义的a,b,c,d 如果改成 int a,b,c,d;就对了!
因为double为8个字节,int为4个字节,调用scanf函数时,一个%d只能使用两个字节,导致a,b,c和d中未能正确读入数据! 所以a,b,c,d中的值应该值都为-858993460所以比较大小,输出的是第一个数,而用%d输出时,则只专用4个字节,当好是输入的第一个数!所以显示第一个数!!!!!具体,可以自己调试一下程序,看看内存分配!!!!!!!!
郁闷了打错字,%d是使用4个字节!!!