C语言简单程序:输入四个数,按从小到大顺序输出

本人菜鸟一个,希望高手指教,下面是小弟程序,不知哪有错,输不出结果。
#include"stdio.h"
void main()
{int a[3],i,j,t;
printf("输入四个整数:");
for(i=0;i<4;i++)
scanf("%d",&a[i]);
for(i=0;i<4;i++)
printf("%d",a[i]);
for(i=0;i<4;i++)
{for(j=1;j<4;j++)
if(a[i]>a[j])
{t=a[j];
a[j]=a[i];
a[i]=t;

}

}

for(i=0;i<4;i++)
printf("%d",a[i]);

}

你好,你的代码有两处错误:首先定义数组时长度过小,你要对4个数排序所以数组的长度至少要为4。
其次你对四个整数排序的算法错误,建议用冒泡法进行排序。下面是我在你的代码基础上改进过后的代码,在改动处我已作了注释,希望对你有帮助!
#include"stdio.h"
void main()
{int a[4],i,j,t; //数组长度为4!//
printf("输入四个整数:");
for(i=0;i<4;i++)
scanf("%d",&a[i]);
for(i=0;i<4;i++)
printf("%d ",a[i]);
printf("\n");
for(i=0;i<3;i++)
{for(j=i+1;j<4;j++) //注意此处的排序算法//
if(a[i]>a[j])
{t=a[j];
a[j]=a[i];
a[i]=t;

}

}

for(i=0;i<4;i++)
printf("%d ",a[i]);
printf("\n");
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-03-16
首先你要输入四个数,所以是a[4];是粗心了吧?...
第二你的比较的那两个for循环有问题。自己看下边吧。。。

#include"stdio.h"
void main()
{int a[4],i,j,t;
printf("输入四个整数:");
for(i=0;i<4;i++)
{scanf("%d",&a[i]);}
for(i=0;i<4;i++)
printf("%d",a[i]);
for(j=4;j>0;j--)
{for(i=0;i<4;i++)
if(a[i]>a[i+1])
{t=a[i+1];
a[i+1]=a[i];
a[i]=t;
}
}
for(i=0;i<4;i++)
{printf("%d",a[i]);}

}
第2个回答  2010-03-16
#include"stdio.h"
void main(){
int a[3],i,j,t;
printf("输入四个整数:");
for(i=0;i<4;i++)
scanf("%d",&a[i]);
for(i=0;i<4;i++)
printf("%d",a[i]);
for(i=0;i<4;i++){
for(j=1;j<4;j++){ //这里少个{
if(a[i]>a[j]){
t=a[j];
a[j]=a[i];
a[i]=t;
}
}
} //这里又少个{
for(i=0;i<4;i++)
printf("%d",a[i]);
}

新手学习程序时一定要使用缩进程式.切记.切记.
第3个回答  2010-03-16
既然是输入4个数,怎么能int a[3]呢。。。应该是int a[4]啊。 int a[N],表示a的下标是从0到N-1,共N的元素
相似回答
大家正在搜