PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
C_and_CPP
[问题] 印出什么
楼主:
ooww
(另外一个我)
2021-02-05 00:33:08
开发平台(Platform): (Ex: Win10, Linux, ...)
win10
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
onlineGDB
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
印出问题
喂入的资料(Input):
预期的正确结果(Expected Output):
错误结果(Wrong Output):
程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档)
#include <stdio.h>
int main()
{
int n = 0;
if(n = 0) n=1;
else if(n=1) n=2;
else if(n=2) n=3;
else if(n=3) n=4;
printf("n = %d", n);
return 0;
}
补充说明(Supplement):
照着课本上的题目写
课本答案输出为 1
但是测试后输出为2
请教另一位中央资工所同学也表示很纳闷
他也认为答案是1
跪求版上码农大大开示 还是课本答案错了?
(标题不太清楚怎么描述比较好)
作者:
Schottky
(顺风相送)
2021-02-05 00:38:00
你是不是把 if 判断式里面的 == 写成 = 了
作者:
nh60211as
2021-02-05 00:44:00
中央资工所==
作者:
Schottky
(顺风相送)
2021-02-05 00:56:00
请把课本题目拍给我们参详参详
作者:
poolongkong
(普拢贡)
2021-02-05 01:06:00
= 是 assign,== 才是判断左右两边是否相等说不定你同学以为你打错,自动把 = 转成 == 了 XD
作者:
Schottky
(顺风相送)
2021-02-05 01:41:00
嗯嗯,这是课本印错,但与其说是答案错不如说题目印错就是 == 印错变成 = 的问题,请向老师反应这个问题和 main() 的传回值是 int 或 void 完全无关是的,正解
作者:
loveme00835
(发箍)
2021-02-05 01:51:00
你可以试试加上选项 -Wall -Werror -pedantic-errors连编译都不会过的东西就不用看了你那个网站没地方加有点烂, 一般社群分享程式码都是用 Compiler Explorer
https://godbolt.org/z/n66zcT
各制化选项较多, 如可用比较热门的函式库-Wall -Werror 开下去如果没办法编过表示程式码有缺陷 (defect), 即使你关选项忽略它迟早也是要还的
作者:
GTR12534
(カラス)
2021-02-07 00:30:00
assignment 的回传值bit.ly/assignment-value
作者: kaneson (Lance)
2021-02-09 10:01:00
题目写=是故意的,写==是考小学生因为c是少数assign statement仍可取值不会报错的语言.所以这也是一个找bug的要注意的点。我是觉得课本答案错了
作者:
Lipraxde
(Lipraxde)
2021-02-09 10:19:00
印象中看过有一种 coding style 是把 condition 的式子倒过来,例如变成:1 == n。
作者: asdfdsa1024
2021-02-10 19:29:00
看起来是因为第一个if 是赋值0所以判断式为false 不会进入第一个if 第二个else if 赋值1所以会进入 因此n=2
继续阅读
[问题] C++ z3 solver 问题
chiya0219
[问题] makefile phony问题
anoymouse
[问题] 资料序列化处理 in C
windtodream
[问题] malloc 内存长度的问题
gowrite
[问题] Include header 档案问题
skyconquer
[问题] 一个LRU cache实作的问题
Neverfor
Re: [问题] 标头档的问题
nh60211as
[问题] 标头档的问题
shiburin
opencv 安装 in win8.1 参数设定
dhtsai
[问题] 任意数加总的算法
HowLeeHi
Links
booklink
Contact Us: admin [ a t ] ucptt.com