#include
#include
void insertsort(int a[],int n){
// printf("请输入数组的长度");
// scanf("%d",n);
// printf("请输入数");
int i;
for(i=1;i<=n-1;i+=1){
scanf("%d",&a[i]);
}
a[0]=0;
int m,u;//m是抽出来的第几个数
for(m=2;m<=n-1;m+=1){
a[0]=a[m];
for(u=m-1;u>=1;u--){
if(a[0]<=a[u]){
a[u]=a[m];
}
else{
a[u+1]=a[0];
}
}
}
}
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
int n,i,a[];
printf("请输入数组的长度");
scanf("%d",n);
printf("请输入数");
insertsort(a);
for(i=1;i<=n-1;i++){
printf("%d",a[i]);
}
return 0;
}
1,insertsort函数中第一个for实现从键盘输入n个数,从i=1到n-1总共只有n-1个数哦,应该是从i=0开始吧这样到n-1就有n个数了。
2,而且insertsort函数需要2个参数,你main中只传了1个实参
对于上面的两段代码,可能存在以下几个原因会导致报错:
1.数组a的大小未定义;
2.insertsort()函数未定义;
3.scanf()函数格式不正确;
4.for循环下标越界。