题目:完成五个整数的排序(由大到小)
#include<stdio.h>
void main()
{
int a[5];
int i,j,temp;
printf("input 5 numbers:
");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
printf("
");
for(j=0;j<4;j++)
for(i=0;i<5-i;i++)
if(a[i]<a[i+1])
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
for(i=0;i<5;i++)
printf("%d,",a[i] );
printf("
");
}
为什么输入的最后一位不能参与到前面的排序
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
for(i=0;i<5-j;i++) // update..
scanf("%d",&a);
printf(" ");
for(j=1;j<5;j++)
for(i=0;i<5-j;i++)
if(a<a[i+1])
{
temp=a;
a=a[i+1];
a[i+1]=temp;
}
for(i=0;i<5;i++)
printf("%d,",a );
printf(" ");
你i<5-i,才能比到i[2]和i[3],根本就没比到i[4],最后一个能参与比较吗?直接改成
for(i=0;i<4;i++) 试试
一周热门 更多>