C语言,我不太明白什么意思 ,特别是temp和输出语句,求解答~~

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

//你的程序本身就已经有问题了(问题是你没有给a,b,c初值,还有第三个if,逻辑错了。),下是面是我把你的程序改正过的。你的这个程序是实现输入三个值,然后由小到大输出
#include<stdio.h>
main()
{
int a,b,c,temp;//这里定义四个变量,a,b,c,temp
printf("请输入a,b,c的值:");
scanf("%d%d%d",&a,&b,&c);//把输入的,a,b,c值给接收进来
if(a>b){temp=a;a=b;b=temp;}//注意:temp他是一个中间变量,经过这复合语后,b存的是a和b之间的最大值,a存的是a和b之间的最小值
if(a>c){temp=a;a=c;c=temp;}//经过这复合语后,c存的是a和c之间的最大值,a存的是a和c之间的最小值
//经过以上两个if之后,a就成了a,b,c中三个数中的最小数,接着再进行如下比较b与c看谁大谁小,大的存在c中,小的存在b中,

if(b>c){temp=b;b=c;c=temp;}//经过这复合语后,c存的是b和c之间的最大值,b存的是b和c之间的最小值
//经过三个if后自己然就成了a<b<c,因此进行如下的输出
printf("%d<%d<%d\n",a,b,c);//由小到大输出
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-10-07
这里temp是存储临时变量用的啊,目的是交换两个变量的值
你这个不就是比较abc的大小么...去弄本书看看吧
第2个回答  2011-10-07
temp其实就是一个临时的变量
相当于在系统里开了四个空间存了3个值
temp(临时的,空的没值) 比如你上面的
if(a>b){temp=a;a=b;b=temp;} 就是将a空间里面的值赋值给临时的temp,在这个时候a空间里面就是空的,在将b空间里面的值赋值给a空间,这个时候b里面是空的,在将temp的值赋值给b空间
其实就是相当于把a和b交换
希望能帮到你
第3个回答  2011-10-07
是调换顺序的意思 TEMP是个临时变量 用来临时保存最小值的一个临时变量。

不过这个语句效率太低
最好用FOR语句来执行比较好
for(i=0;i<=3;i++)
{
for(j=3;j<=i-1;j--)
{
if(a[j]<a[j-1])
{
temp=a[j];
a[j]=a[j-1];
a[j-1]=temp;
}
}
}
for(i=0;i<=3;i++)
{
printf("%d",a[i]);
}
第4个回答  2011-10-07
if(a>b){temp=a;a=b;b=temp;}
如果A大于B、交换A、B的值、
if(a>c){temp=a;a=c;c=temp;}
如果A大于C、交换A、C的值、
if(b>c){temp=b;b=c;c=temp;}
如果B大于C、交换B、C的值、
第5个回答  2011-10-07
temp是一个空变量,还有你的这个程序没有输入具体值,不能交换,
应该这样;
#include<stdio.h>
main()
{
int a,b,c,temp;
scanf("%d%d%d",&a,&b,&c);
if(a>b){temp=a;a=b;b=temp;}
if(a>c){temp=a;a=c;c=temp;}
if(a>b){temp=b;b=c;c=temp;}
printf("%d<%d<%d",a,b,c);
}
相似回答