因此,我正在尝试构建一个包含2个整数的程序。稍后,它将正负号和数字分开,并将它们保存为向量。最后,我想将这两个整数相加。我设法将整数拆分为矢量,尽管我无法打印它们,但vector.size()给了我正确的答案。关于如何使整数相加的任何线索?
谢谢,
到目前为止,这是我的代码:
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
int
main(){
cout<<"Give 2 integers.\n";
int a,b;
cin>>a;
cin>>b;
vector<int> adigits;
//10 for positive, 20 for negative integer
adigits.push_back(a<0 ? 20:10);
a=abs(a);
while(a>0){
adigits.push_back(a%10);
a=a/10;
}
vector<int> bdigits;
//10 for positive, 20 for negative integer
bdigits.push_back(b<0 ? 20:10);
b=abs(b);
while(b>0){
bdigits.push_back(b%10);
b=b/10;
}
vector <int>::size_type c;
vector <int>::size_type d;
c=adigits.size();
d=bdigits.size();
cout<<c;
cout<<d;
return 0;
}
最佳答案
adigits.push_back(a<0 ? 20:10);
while(a>0){
adigits.push_back(a%10);
a=a/10;
}
如果
20
在循环执行一次之前已经小于零,这只会将adigits
推入a
。重新思考你的逻辑;
bdigits
循环具有相同的缺陷。关于c++ - 将整数相加成 vector ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9075140/