компилятор говорит, что объявление отсутствует; - PullRequest
0 голосов
/ 04 июля 2010

У меня две небольшие проблемы в этом коде, но я не могу их получить. Я упомянул места, где компилятор выдает ошибку. Ниже приведены два из них:

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define SIZE 100
int count;

void menu(void);
void input(int[]);
void print(int[]);
void insert(int[]);
void delete_element(int arr[]);
void search(int arr[]);

void main(void)
{
  int arr[SIZE];
  char choice;
  while(1)
  {
    menu();
    choice=getche();
    switch (choice)
    {
      case'1':input(arr);break;
      case'2':delete_element(arr);break;
      case'3':insert(arr);break;
      case'4':print(arr);break;
      case'5':search(arr);break;
      case'6':exit(0);//from stdlib.h
      default:printf("Enter valid choice!");
    }

    getch();
  }

void print(int arr[])
{    // says declaration syntax error here
  int i;
  for(i=0;i<count ;i++)
    printf("element is %d",arr[i]);

}

void input(int arr[])
{
  if(count<SIZE)
    for(count=0; ;count++)
    {
      printf("Enter element %d:",i+1);
      scanf("%d"&arr[i]);
      if(arr[count]==0)
      {
        count--;
        break;
      }
    }
}

void insert(int arr[])
{
  int i,value,index;
  if(count==SIZE)
    printf("Not enough space to perform insertion");
  else
  {
    printf("Enter value and index:");
    scanf("%d",&value,&index);
    for(i=index;i<=LEN;i++)
    {
      arr[i]=arr[i-1];
    }
    arr[index]=value;
    count++;
    printf("insertion succesful");
  }
}

void delete_element(int arr[])
{
  int index,i;
  if(count==0)
  {
    printf("Empty array");
  }
  else
  {
    printf("Enter Index:");
    scanf("%d",&index);
    for(i=index;i<LEN;i++)
    {
      arr[i]=arr[i+1]
    }
    count--;
    printf("Delete succesful.");
  }
}

void search(int arr[])
{
  int value,flag=0,i;
  printf("Enter value:");
  scanf("%d",&value);
  for(i=0;i<count;i++)
  {
    if(arr[i]==value)
    {
      printf("Value %d is found at index:",value,index);
      flag=i;
    }
  }
  if(!flag)
    printf("Value not found");
  printf("Search Complete");
}

} //                           declaration missing ; here

Ответы [ 2 ]

7 голосов
/ 04 июля 2010

Во-первых, вам не хватает точки с запятой здесь:

for(i=index;i<LEN;i++)
{
    arr[i]=arr[i+1] // Missing semicolon!
}

Вы также не закрыли свою функцию main с помощью правильной фигурной скобки. Переместите фигурную скобку в конце программы до выполнения print().

Еще один момент о читабельности. Обязательно делайте отступ после открытых фигурных скобок и внутри операторов if. Следующие строки сбивают с толку, поскольку неясно, что только первый printf является частью оператора if.

if(!flag)
printf("Value not found");
printf("Search Complete");

Вместо этого сделайте отступ во второй строке, и для большей ясности вы можете использовать фигурные скобки. Как и так:

if(!flag) 
{
    printf("Value not found");
}
printf("Search Complete");
3 голосов
/ 04 июля 2010

Вы объявляете функции в main, что неверно. Снимите последнюю правую фигурную скобку и вставьте ее перед void print. Вы должны форматировать свой код в согласованном и удобочитаемом виде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...