Помогите - калькулятор или подскажите (плиз)
От: Alfa  
Дата: 08.06.02 14:12
Оценка:
Я чайник в С++ — если у кого есть исходник на строковый калькулятор написанный под DOS пожалуйста скиньте или оставте ссылку, Parser не подходит — не компилируется нехватате библиотек

или подскажите что сделал не так

функция расчета сложения и вычитания
проверяет все значения складывает и вычетает
выводит резулбтат
первый раз проходит нормально, но на 2 раз зависает полностью весь комп. (в цикле в смысле)

мое мыло muve@mail.ru

char *vse(char *stroka)
{
int i,j,i1, poshisla1, poshisla2,simvol;
float n1,n2,resul;
char chislo1[STROK],chislo2[STROK];
char *str1,*zamena, *shislo1=&chislo1[0], *shislo2=&chislo2[0];
int t,zvezd;



Aling:
i=0;
j=0;
simvol=0;
n1=0;n2=0;

shislo1=&chislo1[0];
shislo2=&chislo2[0];

for (i=0;i<=strlen(stroka);i++)
{

if (stroka[i]=='-')
{t=1;
simvol=0;
zvezd=i;
cout << 'ss';
break;}
if (stroka[i]=='+')
{t=1;
simvol=1;
zvezd=i;
break;}

t=0;


} if (t!=1) return stroka;

for (j=zvezd-1;j>=0;--j)
{
if (proverkashisla(stroka[j])!=0)
{
poshisla1=j;

continue;
}
break;
}
j=0;
for (j=poshisla1;j<zvezd;j++)
{
if (proverkashisla(stroka[j])!=0)
{
shislo1+=sprintf(shislo1,"%c",stroka[j]);

}
}
for (j=zvezd+1;j<strlen(stroka);j++)
{

if (proverkashisla(stroka[j])!=0)
{
shislo2+=sprintf(shislo2,"%c",stroka[j]);
poshisla2=j;
continue;
} break;

}

sscanf(chislo1,"%f",&n1);
sscanf(chislo2,"%f",&n2);


if (simvol==0)
resul=n1-n2;
if (simvol==1)
resul=n1+n2;



sprintf(zamena,"%f",resul);
zamena_null(zamena);



zamenitelstrok(stroka,zamena,poshisla1,poshisla2+1);


goto Aling;


}
Alfa et Omega
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.