gpt4 book ai didi

编译器说缺少声明;

转载 作者:太空宇宙 更新时间:2023-11-04 05:11:21 24 4
gpt4 key购买 nike

我在这段代码中遇到了两个小问题,但我无法解决它们。我已经提到了编译器出错的地方。下面给出了其中两个错误:

#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

最佳答案

首先,您在这里缺少一个分号:

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

您也没有用右大括号关闭您的 main 函数。将程序末尾的花括号移动到 print() 的实现之前。

还有一点关于可读性。确保在左大括号后和 if 语句内缩进。以下几行令人困惑,因为不清楚只有第一个 printfif 语句的一部分。

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

相反,缩进第二行,为了更加清晰,您可能需要使用大括号。像这样:

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

关于编译器说缺少声明;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3173330/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com