错误:声明终止不正确

时间:2010-09-30 12:12:08

标签: c arrays

#include<stdio.h>
#include<conio.h>

void insert(int arr[]);

# define LEN 10

int count;

void main(void)
{
  clrscr();
  int arr[]={20,21,22,23,24};
  insert(arr);
  getch();
}

void insert(int arr[])
{
  if(size==count)
    printf("no space");
    return;

  int index,value;
  printf("enter index and value");
  scanf("%d %d",index,value);
  for(int i=count-1;i>=index;i--)
  {
    arr[i+1]=arr[i];
    arr[i]=value;
    count++;
  }
  printf("insert succcess");

}

2 个答案:

答案 0 :(得分:6)

此行上有一个不正确的分号:

void main(void);

你在这一行忘记了一个分号:

 arr[i=1]=arr[i]

您的代码也有其他错误。例如,这个:

 if(size==count)
 printf("no space");
 return;

始终返回。它相当于:

 if(size==count) {
   printf("no space");
 }
 return;

并且是一个很好的例子,说明为什么你应该养成正确缩进代码并习惯使用括号进行条件化的习惯。

此外,size尚未在任何地方声明。最后,这个:

 scanf("%d %d",index,value);

不会做你想要的。您需要将<{1}} 指针指向要存储值的整数,而不是这些整数的值。

答案 1 :(得分:2)

使用C99或GNU扩展编译。

- 或 -

将您的声明放在任何陈述或表达之前。