求问:关于vector,错在哪里?
1 #include <iostream>
2 #include <vector>
3 using namespace std;
4
5 int main()
6 {
7 vector<int> ivec;
8 int ival;
9
10 //读入数据到vector对象
11 cout << "Enter numbers:" << endl;
12 while(cin >> ival)
13 ivec.push_back(ival);
14
15 //计算相邻元素的和并输出
16 if(ivec.size() == 0)
17 {
18 cout << "No element?!" << endl;
19 }
20
21 cout << "Sum of each pair of adjacent elements in the vector:" << endl;
22 for (vector<int>::size_type ix = 0; ix < ivec.size()-1; ix == ix + 2)
23 {
24 cout << ivec[ix] + ivec[ix+1] << "\t";
25 if((ix+1)%6 == 0) //每行输出6个和
26 cout << endl;
27 }
28 if(ivec.size()%2 != 0)
29 cout << endl
30 << "The last element is not been summed and its value is "
31 << ivec[ivec.size()] << endl;
32 }
33
请问上面的程序错在哪里,为什么执行的时候是个无限循环,谢谢各位了!
[解决办法]
12 while(cin >> ival)
13 ivec.push_back(ival);
[解决办法]
发现一处错误,
在循环部分,应该写成ix=ix+2而不是ix==ix+2
[解决办法]
for (vector<int>::size_type ix = 0; ix < ivec.size()-1; ix == ix + 2)
这里越界了!!!
[解决办法]
[解决办法]
楼上的同志已经写的很好啦
楼主编程代码时出现了逻辑错误
for (vector<int>::size_type ix = 0; ix < ivec.size()-1; ix == ix + 2)中的
ix == ix + 2应写成ix=xi+2或者写成ix+=2
[解决办法]
[解决办法]
- C/C++ code
#include <iostream>#include <cstdio> #include <vector> using namespace std; int main() { vector<int> ivec; int ival; //读入数据到vector对象 cout << "please input numbers,input 'q' if it is Done" << endl; while(scanf("%d",&ival)) { ivec.push_back(ival); }//计算相邻元素的和并输出 if(ivec.size() == 0) { cout << "No element?!" << endl; } cout << "Sum of each pair of adjacent elements in the vector:" << endl; for (vector<int>::size_type ix = 0; ix < ivec.size()-1; ix = ix + 2)//==---->= { cout << ivec[ix] + ivec[ix+1] << "\t"; if(ix%12 == 0) //每行输出6个和-------------> cout << endl; } if(ivec.size()%2 != 0) cout << endl << "The last element is not been summed and its value is " << ivec[ivec.size()-1] << endl;//----------->不要越界 }
[解决办法]