首页 > 用户发贴区 > 编程问题提问区 > c++菜鸟级问题!!
2012
04-23

在下刚来,还望多关照SmileTongue

#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);
}本来想求最大值,结果却只显示输入的第一个值。

帮帮我吧Cry


c++菜鸟级问题!!》有 2 条评论

  1. breezeyang 说:

    这个是因为你定义的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个字节,当好是输入的第一个数!所以显示第一个数!!!!!具体,可以自己调试一下程序,看看内存分配!!!!!!!!

  2. breezeyang 说:

    郁闷了打错字,%d是使用4个字节!!!

留下一个回复