又来作业求助了
#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
然后我把++ -- 改成+1 -1就对了 n++ < 10是先比较n < 10 再做 n = n + 1
n--同理 换成++n和--n试试咯 表示学习.... 下一章我好像就要学习这个了 这个主要是考你对++-- 的概念理解,这两个符号放在右面的话都表示先取当前值进行当前运算,运算结束后进行+1或者-1,像程序中得if判断句,就是取当前你输入的值进行判断,比如说你输入9,它会先判断9比10小,然后输出n,但这是n已经++了,所以输出的就是9+1=10;如果你输入10,它会判断后进入else,但是这时输出的其实是11,因为之前if判断句已经进行++操作了,在输出时进行了--,但是并不影响输出结果,而是在cout语句之后将n值又变成了10. 综上,输出的肯定是n+1咯 LS正解,因为n++和n--实际上对n的值进行了操作,改变了n的值,而且在当前表达式中输出改变前的值,而n+1和n-1则不会改变n的值。 基态电子没脾气 发表于 2012-11-1 09:29 static/image/common/back.gif
然后我把++ -- 改成+1 -1就对了
这个判断是高位递减 所以不能++ 前++,后++,前--,后--就这么记就的了 n++先返回n然后n = n+1,++n是先n=n+1,然后返回n 把n-- 變成 --n 不就好了嗎. ++n 或者n++会影响到n的值.
要考虑清楚n是否要不变.
另外n+1对n的值不影响. 这有关C语言运算符的优先权问题,建议楼主看一看C语言教程中的运算符优先权表,应该都有. 表示楼上各种大神~~~
页:
[1]