以下c代码中的错误

时间:2011-07-12 09:08:30

标签: c

注意:问题已经过编辑,可以解决问题。

我已编写此代码以使用函数反转数组。但是第24行有一个错误,说')预期'。我一遍又一遍地阅读它,但我找不到错误。任何人都可以透露它并告诉我如何删除它吗?

#include<stdio.h>
#include<conio.h>
#define max 5

/*function prototype*/
void reverse(int[],int);

void main()
{
    int arr[max]={1,2,3,4,5};
    int i,j;
    clrscr();
    printf("the list before reversing:\n");
    for(i=0;i<max;i++)
        printf("%d",arr[i]);
    reverse(arr,max);
    printf("\n the list after reversing:\n");
    for(i=0;i<max;i++)
        printf("%d",arr[i]);
    getch();
}

/*function for reversing elements of array*/
void reverse(int num[],int max)
{
     int i,j,temp;
     for(i=0,j=max-1;i<max/2;i++,j--)
     {
            temp=num[i];
        num[i]=num[j];
        num[j]=temp;
     }
}

3 个答案:

答案 0 :(得分:3)

max被定义为宏。因此,在预处理后,它变为

void reverse(int num[],int 5)

哪一项无效,您将获得' ) expected'。如果max是常量,则无需将其作为参数传递。而且你在函数中也缺少for

答案 1 :(得分:2)

您似乎错过了for中循环标题中的reverse()关键字。

答案 2 :(得分:0)

编辑: 好吧,好吧,我的第一个答案是愚蠢的...... (没有足够的思考回答)

现在我明白了:

问题是

#define max 5

稍后max(= 5)用作参数!