Професионална програма
Loading...
+ Нов въпрос
IvanilIvanov avatar IvanilIvanov 0 Точки

Стек. Проблемът в компютъра или в кода е?

Здравейте!

Имам проблем с една задача, която при стартиране и въвеждане на число, което да не е просто не иска да събере числата . НАПРИМЕР: 123->1+2+3. Програмата продължава да работи без да спре след въвеждане на числото. На някои компютри работи, на други не. Благодаря предварително!

 

Код:

#include <iostream>

using namespace std;

class stack
{
public:
    stack();
    void push(int);
    void pop();
    int top();
    bool empty();
    void display();
private:
    int n;
    int a[20];
};
stack num(int x)
{
    stack s;
    while(x);

{
    s.push(x%10);
    x=x/10;
}
return s;
}
int main()
{
    int n;
    cout<<"Number= ";
    cin>>n;
    num(n).display();
    return 0;
}
stack::stack()
{
    n=0;
    a[0]=0;
}
void stack::push(int x)
{
n++;
a[n]=x;
}
void stack::pop()
{
    if(!empty())n--;
    else cout<<"Empty stack!"<<endl;
}
int stack::top()
{
    return a[n];
}
bool stack::empty()
{
    return n==0;
}
void stack::display()
{
    int s=0;
    while(!empty())
{
    cout<<top();
    if(n!=1)cout<<"+";
    s=s+top();
    pop();
}
cout<<"="<<s;
cout<<endl;
}

Тагове:
kolioi avatar kolioi 615 Точки

Имаш безкраен цикъл. Във функцията num() махни ; след while() и ще тръгне. Всичко друго е ОК.

0