这段程序那出错了

来源:百度知道 编辑:UC知道 时间:2024/06/22 01:45:46
# include <stdio.h>
void inv(int a[],int n)
{
int x,y,t;
for(y=1;y<5;y++)
for(x=1;x<=5-y;x++)
if(a[x]>a[x+1])
{
t=a[x];
a[x]=a[x+1];
a[x+1]=t;
}
}
void main()
{
int a[5];
int i,j;
for(i=0;i<5;i++)
scanf("%d",&a[i]);
printf("\n");

inv(a,5);
printf("小到大 \n");
for(i;i<5;i++)
printf("%d",a[i]);
}

运行没出错,怎么得不到从小到大的输出结果那

我早一分钟就好了,你抢了我的位置
跟他的意见是一样的,上面的函数的for循环里应该从0开始,下面的那个主函数里的i没有赋0.
我改了下输出的格式,看起来更美观点.
#include <stdio.h>
void inv(int a[],int n)
{
int x,y,t;
for(y=0;y<5;y++) //这里y从0开始
for(x=0;x<=5-y;x++) //x同上
if(a[x]>a[x+1])
{
t=a[x];
a[x]=a[x+1];
a[x+1]=t;
}
}
void main()
{
int a[5];
int i,j;
for(i=0;i<5;i++)
scanf("%d",&a[i]);
printf("\n");

inv(a,5);
printf("小到大 \n");
for(i=0;i<5;i++) //i从0开始输出
{printf("%4d",a[i]);}
printf("\n");
}

错了两个地方
#include <stdio.h>
void inv(int a[],int n)
{
int x,y,t;
for(y=0;y<5;y++) //这里y从0开始
for(x=0;x<=5-y;x++) //x同上
if(a[x]>a[x+1])
{
t=a[x];
a[x]=a[x+1];
a[x+1]=t;
}
}
void main()
{
int a[5];
int i