weixin_44381598 2019-01-03 11:49 采纳率: 0%
浏览 934

c++,如何输入一个一维数组和一个二维数组后判断二维数组中和一维数组有几个共同的元素?

题目:一份购物单(五个货号),去四个不同的商店购物,每个物品有自己的货号。判断哪一家所含要购物品最多如若所含量一样,输出所含一样店家的最后一家。
#include
using namespace std;
int main()
{
int a[5]={0},i,s=0,d=0,f=0,g=0;
for(i=0;i cin>>a[i];
int b[4][5];
int j,k;
for(j=0;j for(k=0;k cin>>b[j][k];
for(int y=0;y<5;y++)
{
if(a[i]==b[0][y])s+=s;
if(a[i]==b[1][y])d+=d;
if(a[i]==b[2][y])f+=f;
if(a[i]==b[3][y])g+=g;
}
cout<<s<<endl;
cout<<d<<endl;
cout<<f<<endl;
cout<<g<<endl;
return 0;
}

  • 写回答

1条回答 默认 最新

  • 菜卵一枚 2019-01-03 18:44
    关注

    不妨使用降维的思想 将二维数组转换为一位数组

    #include <iostream>
    #include <algorithm>
    using namespace std;
    int main()
    {
    
        int a[6]={0},b[21]={0};//改用一位数组装二维数组的东西  
        int c[4]={0};//用于存储商家符合货号的个数
        for(int i=1;i<=5;i++)
            cin>>a[i];
        for(int i=1;i<=20;i++)
            cin>>b[i];
        for(int i=1;i<=5;i++)
        {
            for(int j=0;j<5;j++)
            {
                if(a[i]==b[i+5*j])//b[i+5*j]等同于二维数组中的b[i][j]
                {
                    c[j]++;
                }
            }
        }
       int max=-1,flagi=-1;
        for(int i=0;i<4;i++)
        {
            cout<<c[i]<<endl;
            if(c[i]>=max)
            {
               flagi=i;
                max=c[i];
            }
    
        }
        cout<<flagi+1<<endl;
    }
    
    
    评论

报告相同问题?

悬赏问题

  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿