请问一个c语言相关的问题,望高手指导下, 谢谢
时间:10-02
整理:3721RD
点击:
题目:完成五个整数的排序(由大到小)
#include<stdio.h>
void main()
{
int a[5];
int i,j,temp;
printf("input 5 numbers:\n");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
printf("\n");
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("\n");
}
为什么输入的最后一位不能参与到前面的排序
#include<stdio.h>
void main()
{
int a[5];
int i,j,temp;
printf("input 5 numbers:\n");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
printf("\n");
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("\n");
}
为什么输入的最后一位不能参与到前面的排序
- #include<stdio.h>
- void main()
- {
- int a[5];
- int i,j,temp;
- printf("input 5 numbers:\n");
- for(i=0;i<5;i++)
- scanf("%d",&a[i]);
- printf("\n");
- for(j=0;j<4;j++)
- for(i=0;i<5-1;i++) // update....
- 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("\n");
- }
这里是不是这样 for(j=0;j<4;j++)
for(i=0;i<5-j;i++) // update..
再试试 for(i=0;i<5;i++)
scanf("%d",&a);
printf("\n");
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("\n");
for(i=0;i<5-i;i++)
你i<5-i,才能比到i[2]和i[3],根本就没比到i[4],最后一个能参与比较吗?直接改成
for(i=0;i<4;i++) 试试