Witam, to mój pierwszy post mam, mały problem z dodawaniem dwóch liczb na stosach, mam zaćmę i nie potrafię wykonać prawidłowego dodawania w moim programie. Dodawać się mają cyfry na stosie w takiej kolejności, jak były wprowadzane. _stos[0]+stos[0], _stos[1]+stos[1], jeżeli wynik jest większy od 10, to oczywiście zmniejszamy o 10, a do wcześniejszego wyrazu stosu dodajemy 1 itd.
#include <iostream>
int i=-1;
int _i=-1;
int stos[100];
int _stos[100];
void push(int n){ // za pomoca tej funkcji uzupelniam stos
i=i+1;
stos[i]=n;}
int pop(){
if(i==-1)return -1;
i=i-1;
return stos[i+1];}
void _push(int n){
_i=_i+1;
_stos[_i]=n;}
int _pop(){
if(_i==-1)return -1;
_i=_i-1;
return _stos[i+1];};
using namespace std;
main(){
int k,j,n;
j=6;
while(j!=0){ // uzupelnianie 1 stosu
cout<<"Wcisnij 1 jezeli chcesz wprowadzic cyfre do stosu \n";
cout<<"Wcisnij 0 by przerwac: \n";
cin>>j;
if(j==1){cout<<"Podaj liczbe : ";
cin>>n;
push(n);
}
}
while(k!=0){ // uzupelnianie 2 stosu
cout<<"Wcisnij 1 jezeli chcesz wprowadzic cyfre do drugiego stosu \n";
cout<<"Wcisnij 0 by przerwac: \n";
cin>>k;
if(k==1){cout<<"Podaj liczbe : ";
cin>>n;
_push(n);
}
}int wynik[100];
for(int u=0;u<100;u++){ // prowizoryczne dodawanie - nieudane
wynik[u]=_stos[u]+stos[u];
if(u==0){
if(wynik[u]>9){
cout<<"1 ";
}}
if(u>0){
if(wynik[u]>10)
{wynik[u]=wynik[u]-10;
wynik[u-1]=wynik[u-1]+1;
}
cout<<wynik[u]<<" ";
}
}
system("pause");
return 0;
}
Czy ma ktoś pomysł, jak prawidłowo, zrobić to dodawanie?