平面设计师具备的能力:调试一个C程序有错,高手进来帮忙看看.

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/05 08:52:44
//先用冒泡法排序,再插入一个数
#include <stdio.h>
#define N 5
void main()
{
int i,j,a[N+1],temp,in;
printf("\n请输入 %d 个学员的成绩:\n",N);
for(i=0;i<N;i++)
scanf("%d",&a[i]);

for(i=0;i<N;i++)
{
for(j=0;j<N-i-1;j++)
{
if(a[j]<a[j+1])
{
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
}
printf("\n按由大到小的排序是:\n");
for(i=0;i<N;i++)
printf("%d ",a[i]);

printf("\n请输入要插入学员的成绩:");
scanf("%d",&in);
for(i=0;i<N;i++)
{
if(a[i]>in)
{
break;
/*ERROR:插入的数无论大小都在第一位;改continue则排在最后一位。*/
}
}
for(j=N;j>i;j--)
{
a[j]=a[j-1];
}
a[i]=in;
printf("\n插入后的学员成绩排序为:\n");
for(i=0;i<=N;i++)
printf("%d ",a[i]);
printf("\n");
}

应该是其它地方有错吧.帮忙看下.谢谢.
谢谢楼下两位的回答.
fenfen172 我的程序可以VC里运行,编译也都没错.可输出的结果不是我想要的.

printf("\n请输入要插入学员的成绩:");
scanf("%d",&in);
i=0;
while(a[i]>in)
{
i++;
}
temp=a[i];

for(j=N-1;j>i;j++)
{
a[j]=a[j-1];
}
a[i]=in;

printf("\n插入后的学员成绩排序为:\n");
for(i=0;i<=N;i++)
printf("%d ",a[i]);
printf("\n");
}


for(i=0;i<N;i++)
{
for(j=0;j<N-i-1;j++)
改为:
for(i=0;i<N-1;i++)
{
for(j=i+1;j<N;j++)

下面的程序我还没看,不过我要给你个建议,既然你已经 学C了,说明最起码你的英语有一定小基础了,C的报错信息你应该能看懂一点的,根据它报的错,寻跟究原,万事要靠自己.

自力更生永远理直气壮.