刚刚有点程序的苗头,不过入门真的不容易

本文探讨了如何从字符数组中读取并解析浮点数,以及使用栈来实现后缀表达式的计算过程。通过对源代码的分析,揭示了算法背后的逻辑和细节。

入门难,就算理解的写出了第一次,未必能写出第二次,就算写出了第二次也未必能保证每一个标点符号每一个变量都准确无误,至少是在理解的基础上未必能写的没有任何错误

写东西不熟练导致的根本就是写不出,要写,要练,要思考,人就是练出来的.

float readnumber(char f[],int *i)

{

{int k=0;

 float x=0.0;

while(f[*i]>='0'&&whilef[*i]<='9')

{x=x*10+(f[*i]-'0');

   (*i)++;}

 if(f[*i]=='.')

{(*i)++;

   whlie(f[*i]>='0'&&f[*i]<='9')

    {x=x*10+(f[*i]-'0');

     (*i)++;

     k++;}

whlie(k!=0)

{x=x/10.0;

 k=k-1;}

return x;

}

double evalpost(char f[])

{int i=0;

 double obst[100];

 double x1,x2,x;

 int top=0;

  whlie(f[i]!='#')

 {if(f[i]>='0'&&f[i]<='9'||f[i]='.')

    {obst[top]=readnumber(f,&i);

    top++;

    i++;}

       else if(f[i]=='+')

         {x1=obst[--top];

          x2=obst[--top];

          x=x1+x2;

          top++;

          i++;}

          else if(f[i]=='-')

          {x1=obst[--top];

           x2=obst[--top];

           x=x1-x2;

           top++;

           i++;}

               else if(f[i]=='*')

                 {x1=obst[--top];

                  x2=obst[--top];

                  x=x1*x2;

                  top++;

                  i++;}

                       else if(f[i]=='/')

                        {x1=obst[--top];

                         x2=obst[--top];

                         x=x1/x2;

                         top++;

                         i++;}

return obst[0];

}

double postfix(char e[],char  f[])

{char opst[100];

  int i,j,t;

  int top==0;

  while(e[i]!='#')

  {if(e[i]>='0'&&e[i]<='9'||e[i]=='.')

     {f[j++]=e[i];}

     else if(e[i]=='(')

       {opst[top]=e[i];

         top++;}

         else if(e[i]==')')

           {while(e[i]!='(')

                {f[j++]=opst[top];

                  top--;

                  opst[top]=e[i];

                   top++;}

                else if(e[i]=is_operation(e[i])

                  {while(opst[top]]>

写到这里吧,错误不少,也有写不出的,不行啊!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值