C语言【二维数组应用】:混合两包豆子-创新互联

题目内容:

创新互联专注于企业成都营销网站建设、网站重做改版、双江网站定制设计、自适应品牌网站建设、H5建站商城系统网站开发、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为双江等各大城市提供网站开发制作服务。

根据某种制作豆浆的配方,需将红豆与黑豆按照数量3:2的比例混合。目前有5包豆子,这5包豆子中都是包含红豆和黑豆,现选2包豆子进行混合,请问如何将某2包豆子混合可以使得比例正好是3:2?
输入:10个整数,分别是第0包豆子中黑豆的数量、第0包豆子中红豆的数量、第1包豆子中黑豆的数量、第1包豆子中红豆的数量、第2包豆子中黑豆的数量、第2包豆子中红豆的数量、第3包豆子中黑豆的数量、第3包豆子中红豆的数量、第4包豆子中黑豆的数量、第4包豆子中红豆的数量。
输出:两包豆子的编号,从0开始计数,用空格隔开,小数在前大数在后,如果有多个组合则另起一行,如果没有符合要求的组合则输出-1
例如:
输入: 6 10 6 8 5 7 4 2 13 7
输出:0 1

分析:

由于题目涉及豆子颜色与袋数两个特征的数据,因此考虑用二维数组存储数据;

题目意思为,混合两包豆子(内含黑豆➕红豆)使得红:黑=3:2,理解题意很重要,因此想到利用循环,令第i包豆子与第j包豆子相加,利用二维数组,分别计算红豆与黑豆的加和,通过条件判断,将m,n作为输出工具,每找到一组i、j,就赋值给m,n进行输出。

代码部分:
#includeint main()
{
    int douzi[5][2];
    int i,j,k=0,m=-1;
    int n=-1;
    for(i=0;i<5;i++)
    {
        for(j=0;j<2;j++)
        {
            scanf("%d",&douzi[i][j]);
        }
    }
    for(i=0;i<5;i++)
    {
        for(j=i+1;j<5;j++)
        {
            if(1.0*(douzi[i][1]+douzi[j][1])/(douzi[i][0]+douzi[j][0])==1.5)
            {
                if(i>j)
                {
                    m=j;
                    n=i;
                }
                else
                {
                    m=i;
                    n=j;
                }
                if(m!=-1)
                {
                   printf("%d %d\n",m,n); 
                   m=0;
                   n=0; 
                }
               
            }
        }
    }
    if(m==-1)
    printf("-1");
    
}

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


本文标题:C语言【二维数组应用】:混合两包豆子-创新互联
标题路径:http://csdahua.cn/article/dodggj.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流