注册 登录
编程论坛 C语言论坛

请大家帮忙查看错误

男儿本色 发布于 2020-01-11 20:23, 3174 次点击
为什么在VC++6.0上运行不出来。

#include <stdio.h>

int main( void )
{
    puts( "请输入a和b的值:" );
    int a,b;
    scanf( "%d%d", &a, &b );

    int c = (a>b) ? (a-b) : (a+b);
    printf( "输出值为c: %d\n", c );
}
10 回复
#2
叶纤2020-01-11 20:30
可以的啊,你的编译器报了什么错误啊,还有你怎么输入的啊
#3
男儿本色2020-01-11 20:54
回复 2楼 叶纤
error C2143: syntax error : missing ';' before 'type'
实验.c(6) : error C2065: 'a' : undeclared identifier
实验.c(6) : error C2065: 'b' : undeclared identifier
实验.c(7) : error C2143: syntax error : missing ';' before 'type'
实验.c(8) : error C2065: 'c' : undeclared identifier
Error executing cl.exe.

实验.exe - 5 error(s), 0 warning(s)
输入绝对没有问题,已经检查好几遍了。谢谢!
#4
叶纤2020-01-11 21:08
他说少一个分号? abc没类型
那你试一试int a,b;改成int a;int b;结尾再加个return 0;有些机子不自动添加return 0;还有仔细检查有没有漏符号,实在不行把别人的答案复制粘贴一下,看看哪个能成功
#5
男儿本色2020-01-11 21:14
回复 4楼 叶纤
好的,是在太谢谢你了!
#6
叶纤2020-01-11 21:37
还是不成功的话那就是编译器问题了,或者你把?:条件运算符变成if else语句,如果你只是单纯的想了解条件运算符号的用意,其实直接用一个在线编译工具测试就行,推荐使用   虽然加载的慢点但是功能强大,测试的也准确,比较适合日常的测试,很适合学习的一款工具,而且你用他,绝对能学习到一些东西,
#7
叶纤2020-01-11 21:48
还有啊。最好早点结贴,你这已经是公开的鄙视大佬们的基础知识不行<(`^′)>了,多一些谦卑总能发现自己看不到的东西,
#8
jklqwe1112020-01-12 21:42
c 与c++可以认为是同系的语言,但也有许多不同,c++比c功能多,即使相同功能部分,也有许多不同,不说别的,就编译方面来讲,标准也不一样,编译器在编译c++代码与编译c代码执行的是两套标准,编译器可能就是两个,有人说c++编译器内置了c编译器,这可能是真的,现在再说楼主的问题,从编译错误信息来看,楼主编译的是c文件,那么编译器执行的是c标准,关于声明语句,有这样的规范,声明语句应该放在块的头部,在所有执行语句之前,也就是说,声明语句不能放在执行语句中间,而对于c++来说,就没有这样的限制,所以,楼主有两种方法改正,一是把声明语句放在所有执行语句之前,另外就是把c文件改为c++文件,扩展名改为.CPP
#9
bcbbcclbbc2020-01-12 22:29
想了想,楼上也说了编译器执行的是c标准,关于声明语句,有这样的规范,声明语句应该放在块的头部,在所有执行语句之前,也就是说,声明语句不能放在执行语句中间
vc++ 6.0版本太老了(支持的c标准。。。),不过一些教材用的是这个软件,处理上面的代码自然没问题,不过书上以外的就不一定的了
醒来之后又是新的一天。
#10
叶纤2020-01-12 23:18
天哪讨论的好激烈,有强烈好奇心的我查了一下c标准。。。。楼主的编译器是C89的吗。。
#11
WilsonLA2020-01-20 22:48
你把变量定义放在函数最前面试一下
1