我正在制作关于多项式的小程序,并且遇到一个问题。当我输入字符串,从中获取系数和深度时,它只处理第一个单项式,然后循环无限处理其余的多项式。
例如我把字符串" 5x ^ 3 + 2x ^ 2 + x + 1" ,它处理5x ^ 3然后不可见地显示2x ^ 2 + x + 1。我知道循环存在一些问题。 我写的代码:
void Wielomian::analiza(Wielomian *w, char * napis) {
do
{
AnalizaJ(w, napis);
}
while (*napis);
}
void Wielomian::AnalizaJ(Wielomian *w, char * napis) {
int pom1,potega;
if(*napis=='x')
{
pom1=1;
}
else
{
pom1=strtol(napis,&napis,10);
napis++;
}
if(*napis=='^')
{
napis++;
potega=strtol(napis,&napis,10);
}
w->wsp[potega]=pom1;
napis++;
printf("%s",napis);
return;
}