学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
 16 12
发新话题
打印

求一个关于合并同类项的编程

求一个关于合并同类项的编程

全并同类项的程序,谢谢

TOP

...................


C/C++讨论群:46520219 3996098 21035626 57909089
免费的C/C++算法学习论坛:http://yzfy.org

TOP

燕子杀人了...报官去了..呵呵,晚安
学习需要安静。。海盗要重新来过。。

TOP

燕子加油,争取再次当上版主封杀他们。我顶你~~~~
专心编程………
飞燕算法初级群:3996098
我的Blog

TOP

为什么要封杀我?因为我跟你同名?

TOP

合并同类项
也就是数据结构里的多项式相加…………

TOP

回复 6# 的帖子

3克,又多条思路。

TOP

我已经写 了 一 个…………
用指针…………
数组…………
结构体………………

TOP

回复 8# 的帖子

给我看看嘛!

TOP

练习下模板 输入用空格隔开就好

x3 +x3 -x4 -x5 -x3 -x3=0*x3-1*x4-1*x5
#include <iostream>
#include <iterator>
#include <vector>
#include <cstring>
using namespace std;
class merg
{
public:
    merg(char *p)
    {
        s=new char[strlen(p)+1];
        s=p;
        strcpy(seps," ,\n\t");
    }
    void process()
    {
        token=strtok(s, seps );
        while( token != NULL )
        {  int b=0;
           int c=1;
           int f1=1;
           for(vector<pair<string,int> >::iterator p=v.begin();p!=v.end();p++)
           {       if(*token=='+')
                {
                 token++;
                 f1++;
                }
              if(*token=='-')
              {
                  token++;
                  f1=0;
              }
                      
              if(!strcmp(token,(p->first).c_str()))
              {   
                  if(f1)
                  {  p->second++;
                     
                  }
                  else
                  {
                     p->second--;
                  }
                  b=1;
              }
           }
                    if(!b)
                {   if(f1>=1)
                {
                  c=1;
                }
                if(f1==0)
                {
                  c=-1;
                }
                pair<string,int> p(token,c);
                v.push_back(p);
            }  
      
           token = strtok( NULL, seps );
   
        }
        }
        void show()
        {
            for(vector<pair<string,int> >::iterator p=v.begin();p!=v.end();p++)
            {
              cout<<p->second<<"*"<<(p->first).c_str();
              if(p!=v.end()-1)
                  cout<<'+';
            }
             cout<<endl;
        }

    
private:
    char *s;
    char seps[100];
    char *token;
    vector<pair<string,int> > v;
};
int main( void )
{
   
   char s[1000];
   gets(s);
   merg m(s);
   m.process();
   m.show();
   return 0;
}

[ 本帖最后由 sunkaidong 于 2008-5-9 14:32 编辑 ]
学习需要安静。。海盗要重新来过。。

TOP

 16 12
发新话题