我试图通过将数组发送给函数来对数组进行排序,但是在编译时会出错。我的排序算法可能是错误的,但这不是重点。我不知道为什么我的编译器会报错。这是我的错误:
错误:“ sortarray”的类型冲突 无效sortarray(int d [],int size)
注意:此处以前是“ sortarray”的声明 无效sortarray(int,int);
#include<stdio.h>
#define SIZE 9
void sortarray(int,int);
int main()
{
int i;
int c[SIZE]= {2,6,8,10,12,89,68,45,37};
printf("sorting array program: \n");
for (i = 0; i < SIZE; i++)
{
printf("%d ",c[i]);
}
printf("\n");
sortarray(c,SIZE);
for (i = 0; i < SIZE; i++)
{
printf("%d ",c[i]);
}
return 0;
}
void sortarray(int d[],int size){
int hold;
int i,j;
for (i = 0; i < size; i++)
{
for (j = 0; j < size-1; j++)
{
d[j+1]=hold;
d[j+1]=d[j];
d[j]=hold;
}
}
return;
}
答案 0 :(得分:1)
错误消息很清楚。
您将函数声明为:
void sortarray(int,int);
但是将其定义为
void sortarray(int d[],int size)
这些不同,因为第一个参数的类型不同。
更改声明以符合定义:
void sortarray(int [],int);
答案 1 :(得分:0)
将void sortarray(int,int);
更改为void sortarray(int *,int);
,第一个参数是数组。