请编程高手帮我修改一下程序,谢谢
题目内容:
给定一组整数,要求输出其进行直接插入排序第3趟的结果。
输入描述
在一行输入10个整数
输出描述
输出直接插入排序第3趟的结果,每个数据间用一个空格分隔
输入样例
5 4 7 6 9 8 1 2 3 0
输出样例
4 5 6 7 9 8 1 2 3 0*/
#include<stdio.h>
#define M 10
void Crelist(int a[])
{
int i;
for(i=1;i<=M;i++)
scanf("%d",&a[i]);
}
/*你实现的sortThree的代码将出现在这里*/
void SortThree(int a[])
{
int i,j,k,n;
for(i=1;i<n;i++)
{
for(j=i-1;j>=0;j--)
if(a[j]<a[i]) break;
if(j!=i-1)
{
int temp=a[i];
for(k=i-1;k>j;k--)
a[k+1]=a[k];
a[k+1]=temp;
}
}
printf("%d",a[3]);
}
int main()
{
int a[M+1];
Crelist(a);
SortThree(a);
}
你没有看清题目的要求啊
是输出直接插入排序第3趟的结果,不是第3个元素
另外,你SortThree中的n没有初始值
修改
1.改
int i,j,k,n;
为
int i,j,k,n=3;
2.删除
printf("%d",a[3]);
3.在main()改
int a[M+1];
为
int a[M+1],i;
并在程序最后加
for(i=1;i<=M;i++)
printf("%d ",a[i]);
printf(" ");
return 0;