error C2143: syntax error : missing ';' before '<class-head>'unexpected end of file found 求大神

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-08-03
c++出现fatal error C1004: unexpected end of file found

参考下面
如果确定括号是匹配的话。请在程序结尾按一个回车。确保最后一行后面还有一个空行
提示说程序意外结束,这种问题一般是最后少了一个大括号造成的
1main函数里大括号没有匹配, struct定义}后没有分号, 如果用vc,使用预编译头文件没有include预编译头文件,默认include

struct test
{ //这一行报错error C2143: syntax error : missing ';' before ''
char name[10];
int number;
int score[10]; //数组声明不能是未知数,除非动态申请内存
};

#include<stdio.h>
#include <iostream>
#include<conio.h>
#define N 10
struct vehicle
{ //系统说错误出现在这里
char num[8];
int variety;
int entime;
int enter;
} ve[N];
int count=0;
void menu();
void input();
void show();
void all();
void main()
{
while(1)//此处;去掉
{
menu();
}
system("pause");
}
void menu()
{
char n;
printf("\n\n\n\n\n\n\n\n\n\n\n\n");
printf(" 欢迎使用高速公路收费系统\n");
printf(" 主菜单\n");
printf(" 1.输入车辆信息 \n");
printf(" 2.显示车辆信息 \n");
printf(" 3.显示车辆总数 \n");
printf(" 请输入数字选择操作类型:\n");
n=getch();
switch(n)
{
case '1': input();break;
case '2': show();break;
case '3': all();break;
default: break;
}
}
void input()
{
printf("请输入车辆信息\n");
printf("车牌号:\n");
scanf("%s",&ve[count].num);
printf("车辆类型(4,5,6分别代表大,中,小):\n");
scanf("%d",&ve[count].variety);
printf("进入时间:\n");
scanf("%d",&ve[count].entime);
printf("入口(1,2,3代表三个入口):\n");
scanf("%d",&ve[count].enter);
count++;
printf("是否继续添加(Y/N)\n");
if(getch()=='y'||getch()=='Y')
input();
}
void show()
{
char num[8];
int i;
double a,b,c,l1=200,l2=300,l3=400;
printf("请输入车牌号:\n");
scanf("%s",num);
for(i=0;i<count;i++)
{if(strcmp(ve[i].num,num)==0)
{
printf("车辆信息:");
printf("车辆类型:%d\n",ve[i].variety);
printf("入口站:%d\n",ve[i].enter);
printf("进入时间:%d\n",ve[i].entime);
printf("车牌号:%s\n",ve[i].num);
}
}
for(i=0;i<count;i++)
{ if(ve[i].variety==4 && ve[i].enter==1)
{
a=0.5*l1;
printf("此车应缴费%f元",a);
}
else if(ve[i].variety==4 && ve[i].enter==2)
{
a=0.4*l2;
printf("此车应缴费%f元",a);
}
else if(ve[i].variety==4 && ve[i].enter==3)
{
a=0.3*l3;
printf("此车应缴费%f元",a);
}
else if(ve[i].variety==5&& ve[i].enter==1)
{
b=0.5*l1;
printf("此车应缴费%f元",b);
}
else if(ve[i].variety==5 && ve[i].enter==2)
{
b=0.4*l2;
printf("此车应缴费%f元",b);
}
else if(ve[i].variety==5 && ve[i].enter==3)
{
b=0.3*l3;
printf("此车应缴费%f元",b);
}
else if(ve[i].variety==6 && ve[i].enter==1)
{
c=0.3*l1;
printf("此车应缴费%f元",c);
}
else if(ve[i].variety==6 && ve[i].enter==2)
{
c=0.3*l2;
printf("此车应缴费%f元",c);
}
else if(ve[i].variety==6 && ve[i].enter==3)
{
c=0.3*l3;
printf("此车应缴费%f元",c);
}
}
return;
}
void all()
{
printf("\n\n\n\n");
printf("车辆总数为:%d",count);
return;
}

void main(void) //主函数不用声明,而且,即使要声明也要加 ;
struct vehicle
{ 系统说错误出现在这里
char num[8];
int variety;
int entime;
int enter;
} //记得加 ;

前面的void main(void)要加分号