[C++] Mi a hiba ebben az atoi () -val?
Valamiért rosszul konvertálok:S Tudna valaki segíteni? (Am a program két kettesszámrendszerbeli számot ad össze.)
#include <iostream>
#include <vector>
#include <cstdlib>
using namespace std;
void str_beker(string &x, string szam);
void resize(string &x, string &y);
void sum(string x, string y, string &z);
int main()
{
string x,y;
str_beker(x,"elso");
str_beker(y,"masodik");
resize(x,y);
sum(x,y,z);
cout<<z<<endl;
return 0;
}
void str_beker(string &x, string szam){
cout<<"Add meg a(z) "<<szam<<" szamot!"<<endl;
getline(cin,x);
}
void resize(string &x, string &y){
if(x.size()>y.size()){
y.insert(0,x.size()-y.size(),'0');
}else if(y.size()>x.size()){
x.insert(0,y.size()-x.size(),'0');
}
}
void sum(string x, string y, string &z){
int atv=0;
for(int i=0;i<x.size()+1){
z[i]="0";
}
for(int i=x.size();i>0;i--){
if(atoi(x[i].c_str())+atoi(y[i].c_str())+atv==0){
z[i]="0";
atv=0;
}else if(atoi(x[i].c_str())+atoi(y[i].c_str())+atv==1){
z[i]="1";
atv=0;
}else if(atoi(x[i].c_str())+atoi(y[i].c_str())+atv==2){
z[i]="0";
atv=1;
}else if(atoi(x[i].c_str())+atoi(y[i].c_str())+atv==3){
z[i]="1";
atv=1;
}
}
if(z[z.size()-1]=="0"){
z.erase(z.size()-1,1);
}
}
A helpért előre is köszi(:
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!