#include <iostream>#include <iomanip>#include<conio.h>using std::cin;using std::cout;using std::endl;int main() {int n = 0;cout << "How many integers do you want to sum: ";cin >> n;int sum = 0;int i = 1;cout << "Values are: " << endl;while(i <= n) {cout << std::setw(5) << i;if(i%10 == 0)cout << endl;sum += i++;/************************************************************************************************问题1:在这里第一次i的返回值为什么是2?编码中没这个指令呀?如果在 sum += i++;这句前加i=i++;结果也是对的。这是怎么回事?问题2:如果在这里 输入cout<<i;(我想就是看看i回while的返回值,填上这句话后为什么就不对了?************************************************************************************************/}cout << endl << "Sum is " << sum << endl;getch();return 0;}初学 请高手指点
3 回答
湖上湖
TA贡献2003条经验 获得超2个赞
(1)sum += i++;
这里已经i++了,所以i由1变成了2;
(2)这句前加i=i++;结果也是对的
当然不对了,不知道你怎么弄的.估计是你加了以后没重新编译;
没加:
How many integers do you want to sum: 5
Values are:
1 2 3 4 5
Sum is 15
加了以后:
How many integers do you want to sum: 5
Values are:
1 3 5
Sum is 12
(3)如果在这里 输入cout<<i;(我想就是看看i回while的返回值,填上这句话后为什么就不对了?
怎么不对了.
How many integers do you want to sum: 5
Values are:
12 23 34 45 56
Sum is 15
Press any key to continue
1后边的2,第二个2后边的3,第二个3后边的4....
就是i回while的返回值.
因为cout << std::setw(5) << i;输出i的值之后,然后执行了cout<<i;中间没任何间隔,所以两次输出就连在了一起.
再说一点i=i++;其实就是i++;
但 sum += i++;这个写法确实不好,很容易出错的。
这些问题都很简单,不知道楼主怎么学的.有问题多问老师还有同学,在百度上是得不到什么好答案的.再就是多上机练,多想.认真点.
希望我的回答对你有用.
添加回答
举报
0/150
提交
取消