在向量中添加整数
Adding Integers In A Vector
好的,我有另一个挑战。我有一个问题,要求我"将一组整数读入vecto
r。打印每对相邻元素的和。"修改程序,使其输出第一个和最后一个元素的和,然后是第二个和倒数第二个元素的和,依此类推。"
目前我已经设法让它添加连续的数字,不完全成对,但尽可能接近我可以得到它。
到目前为止,我只学习了vectors
的操作符,问题希望我使用的是:v.empty();
v.size();
v.push_back(t);
v[n];
v1 = v2;
v1 = {a,b,c...};
v1 == v2;
v1 != v2;
<
, <=
, >
, >=
#include <iostream>
#include <string>
#include <vector>
using std::string; using std::vector; using std::cout; using std::cin; using std::endl;
int main ()
{
vector<unsigned> numbers {5, 6, 7, 8, 9, 10, 11};
unsigned sum;
decltype(numbers.size()) count;
for (count = 0; count < numbers.size(); ++count){
sum = (numbers[count]++) + (numbers[count]);
cout << sum << " ";
}
}
我可以让它加5+6;6 + 7;7 + 8等等……但对于每一对和所有其他的,不是100%确定从哪里开始。任何指导将非常感激!
打印每对相邻元素的和。
auto count = numbers.size();
for (auto i = 0; i < numbers.size()-1; i++)
{
std::cout << (numbers[i] + numbers[i+1]) << "t";
}
打印出第一个和最后一个元素的和,然后是第二个和倒数第二个元素的和,依此类推
for (auto i = 0; i < count/2; ++i)
{
std::cout << (numbers[i] + numbers[count - i -1]) << "t";
}
注意:如果vector为奇数,则第二次打印时不计算中间的那个
查看示例输出
在输出(1)相邻对和(2)相反元素和的两个循环下面。
#include <cstddef>
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main ()
{
vector<unsigned> numbers {5, 6, 7, 8, 9, 10, 11};
auto N = numbers.size();
std::cout << "first partn";
for (size_t i = 1; i < N; ++i) {
std::cout << numbers[i-1] + numbers[i] << "n";
}
std::cout << "second partn";
for (size_t i = 0; i < (N - 1 - i); ++i) {
std::cout << numbers[i] + numbers[N - 1 - i] << "n";
}
// in case you have an odd number of elements
if (N % 2 == 1) std::cout << numbers[N / 2] << "n";
}
LiveWorkSpace的输出
我认为你目前的代码将不适合不同的例子。您需要将numbers[count]++
更改为numbers[count+1]
才能工作,并将循环的结束条件更改为size()-1
。
至于你的另一个问题,你应该能够做到这一点,如果你只循环一半的向量,并添加v[i] + v[v.size() - i - 1]
编辑:根据borisbn在评论中的建议,将-1
添加到v[v.size() - i - 1]
嗨,我在VS上尝试了这个,它工作了
vector <int> num;
num.push_back(5);
num.push_back(6);
num.push_back(7);
num.push_back(8);
num.push_back(9);
num.push_back(10);
int count = 0;
for(;count < (num.size()-1);count++)
{
int sum =0;
sum = num[count] + num[count+1];
cout<<sum<<endl;
}
for(int c =0; c < (num.size()-1);c++)
{
int altrsum = num[c]+ num[(num.size()-1)-c];
cout<<altrsum<<endl;
}
相关文章:
- 添加存储在向量中的大整数的函数出现问题
- 当我们从/tp地址中添加/减去一个整数时会发生什么
- 如何在 sqlite3 中的表中添加整数列表
- 使用指针将 ASCII 值添加到整数
- 我正在尝试制作一个程序,在添加 n 天(整数)后告诉一个人什么是一天(例如星期一等)
- C++向数组添加元素并调整数组大小
- 野牛/flex:计算器将双精度值解释为整数,所以我添加了 YYSTYPE 双精度 #define 但我有多个编译错误
- 斯塔克,堆栈,也可以在底部和顶部添加整数
- 通过在带有 C++ 的列表中添加连续元素来计算新的整数列表
- 计算机使用什么方法添加无符号整数
- 如何拆分整数并将所有内容添加到数组中?
- 调整数组大小并添加元素 C++
- 将整数添加到数组值而无需调用它的最安全方法
- 在C++中使用 cin 同时将整数添加到数组中
- 将整数添加到字符
- Qt:QTableWidget 将整数添加到表中
- 将多个整数添加到一个向量索引? 'Cout'不起作用
- 如何将多个整数添加到字符数组中,然后将它们拉出
- 无法将整数添加到标准::复杂<double>
- 为股票类的整数添加分配内存