C高手进 下面一段程序,放在VC2010里出错,在DEV c++里运行正常。 我把printf那句注释掉就可以在VC里运行
#include<stdio.h>intmain(){inta=1;printf("123");intb=0;system("PAUSE");return0;}VC201...
#include<stdio.h>
int main(){
int a=1;
printf("123");
int b=0;
system("PAUSE");
return 0;
}
VC2010报错:error C2143: 语法错误 : 缺少“;”(在“类型”的前面) 展开
int main(){
int a=1;
printf("123");
int b=0;
system("PAUSE");
return 0;
}
VC2010报错:error C2143: 语法错误 : 缺少“;”(在“类型”的前面) 展开
6个回答
展开全部
加上头文件#include <stdlib.h>
另外,建立win32控制台程序的时候把预编译头也加上(就是打对号那里,它会问你建立一个empty还是加上预编译头precomplier)。
vs2010编译通过,运行正常。
源文件放到dev c++里提示system未声明:system是在stdlib.h中声明的,需要#include <stdlib.h>
另外,建立win32控制台程序的时候把预编译头也加上(就是打对号那里,它会问你建立一个empty还是加上预编译头precomplier)。
vs2010编译通过,运行正常。
源文件放到dev c++里提示system未声明:system是在stdlib.h中声明的,需要#include <stdlib.h>
追问
是C语言,不是C++,你有没有把后缀cpp改成.c,你说的在VS里编译通过,是在cpp后缀的时候吧?
后缀改一下你再看看?
谢了
追答
额。C语言分为C89和C99两个版本,C89中规定函数中变量定义必须在可执行语句之前,即在函数的开头位置,C99则没有这一限制。DEV C++默认用的是GCC编译器,支持C99标准,而VS2010只支持C89标准和部分C99标准,所以会出现你遇到的情况。
至于system函数,你可以看下stdio.h这个文件,里边并没有声明这个函数,函数声明是在stdlib.h里,你用DEV C++编译没有提示,但是你用VS2010会提示你一个警告,只不过编译器做的比较强大,它自动去常用头文件中去找了,所以还是推荐#include 。
展开全部
加个
#include <process.h>
#include <process.h>
追问
没用额
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
printf("123");
和
int b=0;
换一下顺序
C++中可以随时声明变量;C语言中不可以
和
int b=0;
换一下顺序
C++中可以随时声明变量;C语言中不可以
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
根据你的程序中有“system("PAUSE");”这句来看,一般情况下是没有添加 #include <windows.h>。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
#include<stdlib.h>
char Grade(double score);
char Grade(double score)
{
char grade;
int temp;
temp=(int)score/10;
switch(temp)
{
case 10: //改过改过改过改过改过
case 9:grade='A'; //改过改过改过改过改过
break;
case 8:grade='B'; //改过改过改过改过改过
break;
case 7:grade='C'; //改过改过改过改过改过
break;
case 6:grade='D'; //改过改过改过改过改过
break;
default:grade='E'; //改过改过改过改过改过
break;
}
return grade;
}
int main()
{
double score1;
printf("请输入一个百分制成绩:");
scanf("%lf",&score1);//1与l分清楚
printf("%4.1f对应的等级是:%c\n",score1,Grade(score1));
getchar();
system("pause");
return 0;
}
#include<stdlib.h>
char Grade(double score);
char Grade(double score)
{
char grade;
int temp;
temp=(int)score/10;
switch(temp)
{
case 10: //改过改过改过改过改过
case 9:grade='A'; //改过改过改过改过改过
break;
case 8:grade='B'; //改过改过改过改过改过
break;
case 7:grade='C'; //改过改过改过改过改过
break;
case 6:grade='D'; //改过改过改过改过改过
break;
default:grade='E'; //改过改过改过改过改过
break;
}
return grade;
}
int main()
{
double score1;
printf("请输入一个百分制成绩:");
scanf("%lf",&score1);//1与l分清楚
printf("%4.1f对应的等级是:%c\n",score1,Grade(score1));
getchar();
system("pause");
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
编译器实现不一样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询