#include<stdio.h>
int main()
{
int i,j,b;
int a[5]={8,6,5,4,1};
for (i=0;i<5;i++)
for(j=0;j<5-i;j++)
{if(a[i]>a[i+1])
{b=a[i];a[i]=a[i+1];a[i+1]=b;}}
for(i=0;i<5;i++)
printf("%d",a[i]);
printf("\n");
return 0;}
题目要求是逆序,不是比较大小,修改如下,供参考:
#include<stdio.h>
int main()
{
int i, j, b;
int a[5] = { 8,6,5,4,1 };
j = sizeof(a) / sizeof(a[0]);
for (i = 0; i < j/2; i++)
//for (j = 0; j < 5 - i; j++)
//{
// if (a[i] > a[i + 1])
{
b = a[i]; a[i] = a[j - i-1]; a[j - i-1] = b;
}
//}
for (i = 0; i < j; i++)
printf("%4d", a[i]);
printf("\n");
return 0;
}
for(j=0;j<5;j++)
搞不明白你就循环足够的次数,不要老想追求效率省几次