注意:问题已经过编辑,可以解决问题。
我已编写此代码以使用函数反转数组。但是第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;
}
}
答案 0 :(得分:3)
max
被定义为宏。因此,在预处理后,它变为
void reverse(int num[],int 5)
哪一项无效,您将获得' ) expected'
。如果max
是常量,则无需将其作为参数传递。而且你在函数中也缺少for
。
答案 1 :(得分:2)
您似乎错过了for
中循环标题中的reverse()
关键字。
答案 2 :(得分:0)
编辑: 好吧,好吧,我的第一个答案是愚蠢的...... (没有足够的思考回答)
现在我明白了:
问题是
#define max 5
稍后max
(= 5)用作参数!