這個計算器小程式我用遞回寫的
要求從左向右算
可是我的運行了從右向左
求助
#include <stdio.h>
#include <stdlib.h>
float fun(char ch[100]);
int main()
{
char ch[100];
gets(ch);
printf("%f",fun(ch));
return 0;
}
float fun(char ch[100])
{
int i=0,i1;float a;char ch1[100];
while ((ch[i]>=48&&ch[i]<=58)||ch[i]=='.')
i++;i1=i;
a=atof(ch);
if (ch[i1]=='+')
{for (i=0;i<100-i1-1;i++)
ch1[i]=ch[i+i1+1];
return a+fun(ch1);}
else if (ch[i1]=='-')
{for (i=0;i<100-i1-1;i++)
ch1[i]=ch[i+i1+1];
return a-fun(ch1);}
else if (ch[i1]=='*')
{for (i=0;i<100-i1-1;i++)
ch1[i]=ch[i+i1+1];
return a*fun(ch1);}
else if (ch[i1]=='/')
{for (i=0;i<100-i1-1;i++)
ch1[i]=ch[i+i1+1];
return a/fun(ch1);}
else if (ch[i1]=='\0')
return a;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/211509.html
標籤:C語言
上一篇:怎么用C++撰寫一個五子棋程式
