本来想用string写的,但输入会不符合格式于是会wra.

最后将所有的string换为char[][],最后才对

思路很简单(就是多个数求最大值的问题)

第一个芯片与其他芯片依次运算

如果两个芯片一样则放在good数组中并记录good的值

将good认为是最大值

再讲循环第二个芯片……..

比较出最大的good;

然后输出good。

#include <iostream>
using namespace std;
int panduan(char*m,char*x,int num)
{
    int n;
    for(n=0;n<num;n++)
    {
        if(m[n]!=x[n])
        {
            return 0;
        }
    }
    return 1;
}
int main()
{
    int num;
    cin>>num;
    int good[num];
    int goodnum=0;
    int i;
    int j;
    char b[num+1][num];
    for(i=1;i<num+1;i++)
    {
        for(j=0;j<num;j++)
        {
            cin>>b[i][j];
        }
    }
    for(j=1;j<=num;j++)
    {
        if(panduan(b[1],b[j],num))
        {
            good[goodnum]=j;
            goodnum++;
        }
    }
    for(i=2;i<=num;i++)
    {
        int chance[num];
        int chancenum=0;
        for(j=1;j<=num;j++)
    {
        if(panduan(b[i],b[j],num))
        {
            chance[chancenum]=j;
            chancenum++;
        }
    }
    if(chancenum>goodnum)
    {
        for(j=0;j<chancenum;j++)
        {
            good[j]=chance[j];
        }
        goodnum=chancenum;
    }
    }
    for(i=0;i<goodnum;i++)
    {
        cout<<good[i]<<” “;
    }
}


版权声明:本文为qq_56202771原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_56202771/article/details/123337507