用户定义的数组函数,我没有看到错误

user defined array function, I do not see the mistake

问题已经解决了,感谢Eugene,但是我还是很好奇我自定义函数哪里做错了我是初学者,没看懂我在这段代码中的错误,我试图打印数组元素然后交换第一个和最后一个元素然后再次打印值,是否可以在没有用户定义函数的情况下进行交换?如果是这样怎么办? 先感谢您。 这是我的代码。

#include<stdio.h>
int swap(int);
int main()
{
    int size;
    int a[5]={10,20,30,40,50};
    for(size=0;size<5;size++)
    {
        printf("%d",a[size]);
    }
    swap(a);
    size=0;
    for(size=0;size<5;size++)
    {
        printf("%d",a[size]);
    }
}
int swap(int)
{
    int temp=a[0];
    a[0]=a[4];
    a[4]=temp;
}

错误信息实际上准确地告诉了你哪里出了问题:

Parameter name missing. a undefined... (请不要post将文本错误消息作为图片。我们无法将其从您的图片复制粘贴到此处。)

在函数定义中,您必须为每个参数提供一个名称。否则你不能在那个函数中使用它:

int swap(int)
{
int temp=a[0];
a[0]=a[4];
a[4]=temp;
}

这里不要告诉你的编译器那个int参数是怎么调用的。 另一方面,您不会告诉编译器您的想法,a 应该是。它在范围内不可见。

要解决这个问题,请像这样更改:

int swap(int a[])
{
int temp=a[0];
a[0]=a[4];
a[4]=temp;
}

这将解决您向我们显示的错误消息。 但是你也应该至少得到一个关于不要从非空函数中重新调整任何东西的警告。 您将 return 类型定义为 int 但没有 return 任何 int 值。 对于交换功能,通常不需要 return 任何东西。

因此使用这个:

void swap(int a[])
{
  int temp=a[0];
  a[0]=a[4];
  a[4]=temp;
}

任何一本不错的初学者教科书都应该清楚地涵盖函数定义的外观。 学习一门新语言时,你不应该跳过第一章。