zoukankan      html  css  js  c++  java
  • 婚礼珠宝策划

     

    图片

     #include<iostream>

    #include<cmath>

    using namespace std;

    struct G
    {
     float W;
     float V;
     char N[10];
    }g[100];
    void wenzi(int & m)
    {
     cout<<"某婚礼需要一个珠宝盒"<<endl;

        cout<<"要求该珠宝盒所装的珠宝重量和不能超过50g,且珠宝盒中只能装3件珠宝,但在满足重量,数量要求的范围内,珠宝的价值和要最大"<<endl;

        cout<<"问:该怎么合理的装珠宝于珠宝盒中????"<<endl<<endl;

     cout<<"亲:现有多少种类的珠宝呢?请输入:"<<endl;
     cin>>m;
    }
    int main()
    {
     int M;
     wenzi(M);
     int i,j,k,p=0,A[100],B[100],C[100],a,b,c;
     int w[100],v,max=0;
     for(i=1;i<=M;i++)
     {
      cout<<"第"<<i<<"类商品的名称、重量、价值   :";
      cin>>g[i].N>>g[i].W>>g[i].V;
     }
     for(i=1;i<=M;i++)//第一次取有三种情况
     {
      for(j=1;j<=M;j++)//第二次取有三种情况
      {
       for(k=1;k<=M;k++)//第三次取有三种情况
       {
        p++;
        w[p]=g[i].W+g[j].W+g[k].W;//每种情况的重量和
        if(w[p]<50)//若重量和小于50,将每一次取的珠宝类型记录
        {
         A[p]=i;B[p]=j;C[p]=k;
        }
        //反之,用0初始化
        else
        {
         A[p]=0;B[p]=0;C[p]=0;
        }
       }
      }
     }
     //在满足上述条件的前提下计算珠宝的价值和
     for(p=1;p<=pow(M,3);p++)
     {
      v=g[A[p]].V+g[B[p]].V+g[C[p]].V;
      //并取出最大值
      max=(v>max)?v:max;
     }
     //将满足条件的各种取法记录
     for(p=1;p<=pow(M,3);p++)
     {
      v=g[A[p]].V+g[B[p]].V+g[C[p]].V;
      if(max==v)
      {
       a=A[p];
       b=B[p];
       c=C[p];
      }
     }
     //将结果罗列
     cout<<"满足要求的取法是:"<<endl;
     if(a==b&&a!=c)
     {
      cout<<"取2件"<<g[a].N<<endl;
      cout<<"取1件"<<g[c].N<<endl;
      cout<<"重量和:"<<g[a].W*2+g[c].W<<"克"<<endl;
      cout<<"价值和:"<<g[a].V*2+g[c].V<<"元"<<endl;
     }

     if(a==c&&a!=b)
     {
      cout<<"取2件"<<g[a].N<<endl;
      cout<<"取1件"<<g[b].N<<endl;
      cout<<"重量和:"<<g[a].W*2+g[b].W<<"克"<<endl;
      cout<<"价值和:"<<g[a].V*2+g[b].V<<"元"<<endl;
     }

     if(c==b&&c!=a)
     {
      cout<<"取2件"<<g[c].N<<endl;
      cout<<"取1件"<<g[a].N<<endl;
      cout<<"重量和:"<<g[c].W*2+g[a].W<<"克"<<endl;
      cout<<"价值和:"<<g[c].V*2+g[a].V<<"元"<<endl;
     }
     if(a==b&&a==c)
     {
      cout<<"取3件"<<g[a].N<<endl;
      cout<<"重量和:"<<g[a].W*3<<"克"<<endl;
      cout<<"价值和:"<<g[a].V*3<<"元"<<endl;
     }
     return 0;
    }

  • 相关阅读:
    How a non-windowed component can receive messages from Windows
    svn在linux下的使用(svn命令行)ubuntu 删除 新增 添加 提交 状态查询 恢复
    Jquery ajax提交表单几种方法详解
    http协议和web本质
    XHR——XMLHttpRequest对象
    恢复sudo的权限的命令
    ThinkPHP导入Excel文件(使用PHPExcel)
    怎样用U盘安装Ubuntu系统/ubuntu系统怎么安装
    kohana(3.2)和gleez(1.1.5)的安装
    mysql 的卸载、再安装与常用命令
  • 原文地址:https://www.cnblogs.com/zzkgis/p/3742589.html
Copyright © 2011-2022 走看看