c语言中提示missing ;但是我找过了没有发现

作者&投稿:穆的 (若有异议请与网页底部的电邮联系)
c语言调试失败总显示missing ; before...但是我仔细检查了没有错误啊~

没有main函数啊,不可以直接运行呀!

在C语言中,这是一个语法错误。
在运行程序时发现了一个问题,总是提示一个错误:error C2143: syntax error : missing before type。解决方法如下:把所有变量的声明放在可执行代码之前。
出现此问题的原因在于:将文件保存成了 .c 格式。如果是cpp格式就能正常编译。改成.cpp就可以正常运行,和你变量声明的位置就没有关系了。
一般在ANSIC或者C++中,在可执行代码中随时定义变量是允许的,但是在K&RC中是不允许的,因此才会出现这个错误VC6.0、VS2008 都是用的K&RC来实现C语言的,因此编译过程中会报错。
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器以及超级电脑等作业平台。

#include <stdio.h>
#include<conio.h>//getch函数所需的头文件
main()
{
void d();//要在主函数里面声明在主函数下面定义的自定义函数,而且你的d()没有类型,我加上了一个void
char choice;
while(1)
{
printf("1.d\n2.f\n3.exit\n\nplease choose 1/2/3.");
choice=getch();//这个getch函数在conio头文件里面,所以前面要加上一个#include<conio.h>
switch(choice)
{
case '1': d(); break;
/*case '2;f(); break;
case '3': exit(); break;*/
default: printf("error, please try again"); getch();
}
}
}
void d()//这个地方加上void
{
int a,b;
char c;
// clrsc();//这个函数我不知道有什么用,所以给你注释了。要是你想要用这个函数的话你可以去百度一下这个函数的头文件,然后加在代码最前面就行了
scanf("%d%c%d",&a,&c,&b);
switch(c)
{
case '+': printf("=%d",a+b); break;
case '-': printf("=%d",a-b); break;
case '*': printf("=%d",a*b); break;
case '/': printf("=%d",a/b); break;//你的这个地方写成尖括号了,我给你改成圆括号了。
default: printf("sorry, I cannot do this");
}
printf("press 1 to continue; press 2 to f; press 3 to exxit");
getch();
}

需要加这个头文件#include<conio.h>//getch函数所需的头文件
clrsc();这个函数是不是应该改为clrscr()啊。

把d()函数放到main函数之前,
swich(c)改为switch(c)
case '/': printf<"=%d",a/b>; break;尖括号改为case '/': printf("=%d",a/b); break;
这样你的程序编译不会有问题了。

d()是定义的一个函数 你这个没有函数类型啊
这个函数没有返回值你把d()改为void d()试试
你引用的那个f()函数也是,另外你在main()里没有声明d()和f(),所以main()是无法调用d()和f()的,你应该在main()里声明或是把d()和f()生命在main()之前