回 帖 发 新 帖 刷新版面

主题:输出从小到大的数问题

如下面的程序,我在TC下输入1,2,3得到的结果是:1,2,3,879
在VC++里的结果是1,2,3,-858993460
应该返回的是1,2,3,3才对啊,如果输入的是2,1,3或者3,1,2或者3,2,1都正常输出,为什么输入1,2,3的时候她t输出的就不一样了呢??

#include <stdio.h>
int main()
{
int a,b,c,t;
scanf("%d,%d,%d",&a,&b,&c);
if (a>b)
{
t=a;a=b;b=t;
}
if (a>c)
{
t=a;a=c;c=t;
}
if (b>c)
{
t=b;b=c;c=t;
}
printf("%d,%d,%d,%d\n",a,b,c,t);
}

回复列表 (共3个回复)

沙发


因为这时候t还没有被赋值,所以当你用不同的编译器的时候,t的值会不同

板凳


[em1][em1][em1]
 [size=6]t[/size]是变量

3 楼

因为 如果 输入是1,2,3的时候 代码中的3个if全部为假 那么整个程序都没有给T赋值
这个时候T就会有一个自带的垃圾值
而这个垃圾值 会因为编译器的不同而有所不同 但都不是你想得到的值#32
是一个无意义的垃圾值

我来回复

您尚未登录,请登录后再回复。点此登录或注册