Prosty program dodawania liczb na stosie

0

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?

0

Mógłbyś napisać w czym konkretnie masz problem? Co ci nie działa w tym dodawaniu?

0

Dodawać się powinny cyfry, po kolei parami ze stosów, ale wynik nie jest poprawny.

Tak jak w obrazku na załączniku.

0

Wynik ma być taki jak przy takim rozwiązaniu
dodać bibliotekę <math.h>
oraz kod liczenia:

 
               int w=0,_w=0;
               for(int u=0;u<100;u++){ 
               w=w+(stos[u]*(pow(10,u)));
               _w=_w+(_stos[u]*(pow(10,u)));
                    
                    }
                    cout<<w+_w; 

Można zamknąć, sam sobie poradziłem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1