本来想用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]<<" ";
}
}