基态电子没脾气 发表于 2012-11-1 09:27:26

又来作业求助了

        #include <iostream.h>

void main()
{
int n;
cin >> n ;
if ( n ++ < 10 )
cout << n << endl ;
else
cout << n -- << endl ;
}
题目要求是看这个程序 并取值运行 找出程序功能
这个程序本身应该是如果n+1<10就输出n 否则输出n-1吧 但是运行的结果是无论输入什么全部输出的是n+1

基态电子没脾气 发表于 2012-11-1 09:29:55

然后我把++ -- 改成+1 -1就对了

digitaltsu 发表于 2012-11-1 11:10:18

n++ < 10是先比较n < 10 再做 n = n + 1
n--同理

xswaqde 发表于 2012-11-1 14:15:16

换成++n和--n试试咯

小泽丿s 发表于 2012-11-10 16:12:00

表示学习....

wuxiran 发表于 2012-11-10 18:51:17

下一章我好像就要学习这个了

可乐xinchina 发表于 2012-11-10 19:59:57

这个主要是考你对++-- 的概念理解,这两个符号放在右面的话都表示先取当前值进行当前运算,运算结束后进行+1或者-1,像程序中得if判断句,就是取当前你输入的值进行判断,比如说你输入9,它会先判断9比10小,然后输出n,但这是n已经++了,所以输出的就是9+1=10;如果你输入10,它会判断后进入else,但是这时输出的其实是11,因为之前if判断句已经进行++操作了,在输出时进行了--,但是并不影响输出结果,而是在cout语句之后将n值又变成了10.      综上,输出的肯定是n+1咯

5941 发表于 2012-11-10 23:10:08

LS正解,因为n++和n--实际上对n的值进行了操作,改变了n的值,而且在当前表达式中输出改变前的值,而n+1和n-1则不会改变n的值。

橴陽花桾__ 发表于 2012-11-16 00:47:44

基态电子没脾气 发表于 2012-11-1 09:29 static/image/common/back.gif
然后我把++ -- 改成+1 -1就对了

这个判断是高位递减 所以不能++

uniquer 发表于 2012-11-26 22:22:28

前++,后++,前--,后--就这么记就的了

绯色の人形 发表于 2012-11-26 23:33:48

n++先返回n然后n = n+1,++n是先n=n+1,然后返回n

terry182 发表于 2012-11-26 23:41:39

把n-- 變成 --n 不就好了嗎.

jains521 发表于 2012-12-27 20:03:23

++n 或者n++会影响到n的值.
要考虑清楚n是否要不变.
另外n+1对n的值不影响.

leixiangdong 发表于 2012-12-27 21:59:35

这有关C语言运算符的优先权问题,建议楼主看一看C语言教程中的运算符优先权表,应该都有.

小G去美帝学EMBS 发表于 2012-12-28 11:10:28

表示楼上各种大神~~~
页: [1]
查看完整版本: 又来作业求助了