不使用C中的指针对具有函数的数组进行排序无法解决。为什么?

时间:2018-11-30 20:22:27

标签: c arrays sorting

我试图通过将数组发送给函数来对数组进行排序,但是在编译时会出错。我的排序算法可能是错误的,但这不是重点。我不知道为什么我的编译器会报错。这是我的错误:

错误:“ 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;
}

2 个答案:

答案 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);,第一个参数是数组。