| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 539 人关注过本帖
标题:求大神 把下面的一点C++代码改成C 好像麻烦好多啊
只看楼主 加入收藏
wang110woai
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-9-10
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:8 
求大神 把下面的一点C++代码改成C 好像麻烦好多啊
#include <iostream>
#include <string>
using namespace std;
int number=0;
string sss[5000];
float cal(float a,float b,int p)
{
      switch(p)
      {
               case 1:return a+b;
               case 2:return a-b;
               case 3:return a*b;
               case 4:return a/b;
               case 5:return b-a;
               case 6:return b/a;
      }
}
string link(string a,string b,int p)
{
       string st=a;
       switch(p)
       {
                case 1:st+=("+"+b);break;
                case 2:st+=("-"+b);break;
                case 3:st+=("*"+b);break;
                case 4:st+=("/"+b);break;
                case 5:st=b+"-"+st;break;
                case 6:st=b+"/"+st;break;
       }
       st="("+st+")";
       return st;
}
void putout1(string c[],int p[])
{
     string st;
     st=link(c[1],c[2],p[1]);
     st=link(st,c[3],p[2]);
     st=link(st,c[4],p[3]);
     st=st.erase(0,1);
     st=st.erase(st.length()-1,1);
     number++;
     sss[number]=st;
     
}
void putout2(string c[],int p[])
{
     string st1,st2,st;
     st1=link(c[1],c[2],p[1]);
     st2=link(c[3],c[4],p[3]);
     st=link(st1,st2,p[2]);
     st=st.erase(0,1);
     st=st.erase(st.length()-1,1);
     number++;
     sss[number]=st;
}
void suan(float a[],string c[])
{
    int p[4];int i;float sum,sum1,sum2;
    for(p[1]=1;p[1]<=6;p[1]++)
      for(p[2]=1;p[2]<=6;p[2]++)
        for(p[3]=1;p[3]<=6;p[3]++)
        {
                                  sum=cal(a[1],a[2],p[1]);
                                  sum=cal(sum,a[3],p[2]);
                                  sum=cal(sum,a[4],p[3]);
                                  if((sum-24>=0&&sum-24<1e-5)||(sum-24<=0&&sum-24>-1e-5)) putout1(c,p);
                                  sum1=cal(a[1],a[2],p[1]);
                                  sum2=cal(a[3],a[4],p[3]);
                                  sum=cal(sum1,sum2,p[2]);
                                  if((sum-24>=0&&sum-24<1e-5)||(sum-24<=0&&sum-24>-1e-5)) putout2(c,p);
        }
}
void disorder(float a[],string c[])
{
     float b[5];
     string d[5];
     int i,j,k,l;
     for(i=1;i<=4;i++)
     for(j=1;j<=4;j++)
     {
                      if(j==i)continue;
                      for(k=1;k<=4;k++)
                      {
                                       if(k==i||k==j)continue;
                                       for(l=1;l<=4;l++)
                                       {
                                                        if(l==i||l==j||l==k)continue;
                                                        b[1]=a[i];b[2]=a[j];b[3]=a[k];b[4]=a[l];
                                                        d[1]=c[i];d[2]=c[j];d[3]=c[k];d[4]=c[l];
                                                        suan(b,d);
                                       }
                      }
     }
}


int main()
{
    cout<<"请输入四个数字";
    float a[5];
    int i,j;
    string c[5];
    for(i=1;i<=4;i++){cin>>a[i];if(a[i]==10)c[i]="10" ;else c[i]=int(a[i])+'0';}
    disorder(a,c);
    int v=1,u=0;
    for(i=1;i<=number;i++)
    {v=1;for(j=1;j<i;j++)if(sss[i]==sss[j])v=0;
    if(v==1){cout<<sss[i]<<endl;u=1;}}
    if(u==0)cout<<"无解"<<endl;
    system("pause");
    return 0;
}
搜索更多相关主题的帖子: include return number 
2015-09-10 10:59
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:5 
你这就是c风格

一片落叶掉进了回忆的流年。
2015-09-10 11:39
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:5 
string  不能直接迁移  大概用char* 替换吧

DO IT YOURSELF !
2015-09-10 14:52
wang110woai
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-9-10
收藏
得分:0 
回复 3楼 wp231957
能不能吧需要改的给我说一下吗 平时没学这么深 对C和C++不太懂 这是个比较重要的作业
2015-09-10 16:06
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:5 
以下是引用wang110woai在2015-9-10 16:06:57的发言:

能不能吧需要改的给我说一下吗 平时没学这么深 对C和C++不太懂 这是个比较重要的作业

作业要自己做
2015-09-10 18:16
wang110woai
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-9-10
收藏
得分:0 
回复 5楼 zklhp
啊 不想死啊 求救
2015-09-10 21:56
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
原来是拆解24点啊

DO IT YOURSELF !
2015-09-12 07:39
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:5 
不管是中译英,还是英译中,都要翻译者懂得两种语言,更要懂得需要翻译的东西是什么意思,不是拿着本字典把单词和语法套过去就可以的。根本就不知道原来的程序是写什么的、每句和每段话的意图是什么,说什么翻译,是多余的。

授人以渔,不授人以鱼。
2015-09-12 10:59
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
总有人以为并传播,学了C之后就可以或才可以学C++,那等于说会英语就会法语。其实,英语和美语也不是那么简单就能通的,何况C与C++。

[ 本帖最后由 TonyDeng 于 2015-9-12 11:14 编辑 ]

授人以渔,不授人以鱼。
2015-09-12 11:12
快速回复:求大神 把下面的一点C++代码改成C 好像麻烦好多啊
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017474 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved