#include<stdio.h>
void main()
{
int a,b,c,d,t;
scanf(“%d,%d,%d,%d”,&a,&b,&c,&d);
if(a>b)
{t=a;a=b;b=t;}
if(a>c)
{t=a;a=c;c=t;}
if(a>d)
{t=a;a=d;d=t;}
if(b>c)
{t=b;b=c;c=t;}
if(b>d)
{t=b;b=d;d=t;}
if(c>d)
{t=c;c=d;d=t;}
printf(“%d,%d,%d,%d”,a,b,c,d);
}
请问我这个程序有错吗,为什么输进数去运行出来的全是很小很小的负数,这是把四个整数按小到大的顺序排列
>> 本文固定链接: http://www.vcgood.com/archives/2676
我运行了一下对着呢,记得输入时用逗号隔开
if(a>b)
{t=a;a=b;b=t;}
if(a>c)
{t=a;a=c;c=t;}
if(a>d)
{t=a;a=d;d=t;}
if(b>c)
{t=b;b=c;c=t;}
if(b>d)
{t=b;b=d;d=t;}
if(c>d)
{t=c;c=d;d=t;}
貌似不需要用花括号 然后中间用逗号隔开
大致看了下可以改 {t=c;c=d;d=t;} 为t=c,c=d,d=t;这样形式 这样清楚些
如果不能运行你再跟帖
这样多麻烦啊,直接用if—else循环多好
我的改法为:
#include<stdio.h>
#define M 4
main()
{
int num[M];
int i,j;
printf(“please enter your integer number:\n”);
for (j=0; j<M; j++)
{
for (i=0; i<M-j; i++)
{
if (num[i] > num[i+1])
{
temp =num[i];
num[i] = num[i+1];
num[i+1] = temp;
}
}
}
printf(“the sorted numbers:\n”);
for (i=0; i<M; i++)
{
printf(“%d”,num[i]);
}
}
这样在判断3个数顺序时具有可扩充性!!
呵呵,谢谢大家的回复
whsjxiong:
你好,谢谢你的程序,不过你看看你的程序里的temp是不是应该定义一下