我在这段代码中遇到两个小问题,但我无法得到它们。我已经提到了编译器给出错误的位置。下面给出了两个:
#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
答案 0 :(得分:7)
首先,你错过了一个分号:
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");
答案 1 :(得分:3)
你在main中声明了函数,这是不正确的。删除最后一个右大括号,并在void print
之前插入一个。您应该以一致且可读的方式格式化代码。