有以下两个求最大和次大整数的程序:
1.
int main()
{
int const no_of_elements =10;
int list[no_of_elements] = { 1, 2, 3, 4, 5, 10, 9, 6, 7, 10 };
int largest = list[0];
int second_largest = list[0];
int pos_largest = 0;
int pos_second_largest = 0;
int i;
for (i = 0; i < no_of_elements; i++)
{
if (largest <= list[i])
{
second_largest = largest;
largest = list[i];
pos_second_largest = pos_largest;
pos_largest = i;
}
}
cout << "Largest number is : " << largest << "\n";
cout << "And it is at the position : " << ++pos_largest << endl;
cout << "Second largest number is : " << second_largest << " and its at the position : " << ++pos_second_largest << endl;
return 0;
}
2。
在 for 循环中,我执行 pos_largest =++i
他们给出了不同的答案:
1. 给出 largest=10 secondlargest=10
即根据需要
但是 2. 给出 largest=10 secondlargest=9
请解释一下????
最佳答案
i++
是后递增的。这意味着“给我 i
的值,但在那之后,递增它”。
++i
是预递增的。这意味着“增加 i
,然后给我它的新值”。
int i = 1;
int a = i++; // a is now 1, i is 2
i = 1; // reset i's value to 1
int b = ++i; // i's value is incremented to 2, b's value is 2
关于for
循环,两者具有相同的效果
int i;
for (i = 0; i < 10; i++) {
// ...
}
for (i = 0; i < 10; ++i) {
// ...
}
for 循环中的第三部分在循环体的每次迭代(执行)之后运行。
关于c++ - 关于 C++ 中的 i++ 和++i,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20625553/