Algorytm działa tylko wyskakuje ze trzeba zamienic int na double...;/ Co z tym zrobic?
#include<iostream>
#include<stdlib.h>
#include <math.h>
using namespace std;
char napis[200];
int stos[200];
int ascii[200];
int wyniki[100];
int liczba,a,j,dlugosc,wynik,pom,kolejna,w;
int cyfra(char napis)
{
if (napis=='0') return 0;
if (napis=='1') return 1;
if (napis=='2') return 2;
if (napis=='3') return 3;
if (napis=='4') return 4;
if (napis=='5') return 5;
if (napis=='6') return 6;
if (napis=='7') return 7;
if (napis=='8') return 8;
if (napis=='9') return 9;
}
int main ()
{
cin>>liczba;
for (a=1;a<=199;a++) stos[a]=0;
cin.getline(napis,1);
w=0;
for (a=1;a<=liczba;a++)
{
cin.getline(napis,200);
for (j=0;j<=200;j++)
{
dlugosc=j;
ascii[j]=static_cast<int>(napis[j]);
if (napis[j]=='\0') break;
}
pom=0;
kolejna=0;
wynik=0;
for (j=dlugosc-1;j>=0;j=j-1)
{
if (ascii[j]<=57 && ascii[j]>=48)
{
wynik=wynik+cyfra(napis[j])*pow(10,pom);
pom=pom+1;
if (ascii[j-1]>57 || ascii[j-1]<48 || j-1<0)
{
stos[kolejna]=wynik;
kolejna=kolejna+1;
wynik=0;
pom=0;
}
}
if (ascii[j]==42)
{
wynik=stos[kolejna-1]*stos[kolejna-2];
stos[kolejna-1]=0;
stos[kolejna-2]=wynik;
kolejna=kolejna-1;
wynik=0;
}
if (ascii[j]==43)
{
wynik=stos[kolejna-1]+stos[kolejna-2];
stos[kolejna-1]=0;
stos[kolejna-2]=wynik;
kolejna=kolejna-1;
wynik=0;
}
if (ascii[j]==45)
{
wynik=stos[kolejna-1]-stos[kolejna-2];
stos[kolejna-1]=0;
stos[kolejna-2]=wynik;
kolejna=kolejna-1;
wynik=0;
}
if (ascii[j]==47)
{
wynik=stos[kolejna-1]/stos[kolejna-2];
stos[kolejna-1]=0;
stos[kolejna-2]=wynik;
kolejna=kolejna-1;
wynik=0;
}
}
wyniki[a]=stos[0];
}
for (a=1;a<=liczba;a++) cout<<wyniki[a]<<endl;
system("pause");
return 0;
}