杭电oj 1004 题,为什么我的是wrong answer?
#include<iostream>#include<string>usingnamespacestd;classballoon{public:stringcolor;i...
#include<iostream>
#include<string>
using namespace std;
class balloon{
public:
string color;
int num;
balloon ()
{
color=" ";
num=0;
}
};
int main()
{
int n;
string A[1000];
balloon B[1000];
while(cin>>n&&n!=0)
{
int i;
for(i=0;i<n;i++)
{
cin>>A[i];
}
int j=0;
int k=0;
bool found=false;
for(i=0;i<n;i++)
{
for(k=0;k<j;k++)
{
if(B[k].color==A[i])
{
found=true;
B[k].num++;
j++;
break;
}
}
if(!found)
{
B[j].color=A[i];
}
}
int max=B[0].num;
for(i=0;i<j-1;i++)
{
if(B[i].num>max)
{
max=B[i].num;
k=i;
}
}
cout<<B[k].color<<endl;
}
return 0;
} 展开
#include<string>
using namespace std;
class balloon{
public:
string color;
int num;
balloon ()
{
color=" ";
num=0;
}
};
int main()
{
int n;
string A[1000];
balloon B[1000];
while(cin>>n&&n!=0)
{
int i;
for(i=0;i<n;i++)
{
cin>>A[i];
}
int j=0;
int k=0;
bool found=false;
for(i=0;i<n;i++)
{
for(k=0;k<j;k++)
{
if(B[k].color==A[i])
{
found=true;
B[k].num++;
j++;
break;
}
}
if(!found)
{
B[j].color=A[i];
}
}
int max=B[0].num;
for(i=0;i<j-1;i++)
{
if(B[i].num>max)
{
max=B[i].num;
k=i;
}
}
cout<<B[k].color<<endl;
}
return 0;
} 展开
1个回答
展开全部
for(i=0;i<n;i++)
{
for(k=0;k<j;k++)
{
if(B[k].color==A[i])
{
found=true;
B[k].num++;
j++;
break;
}
}
if(!found)
{
B[j].color=A[i];
}
}
这一段代码太难看懂了,你再好好想想,这里有错误
found只初始化了一次。你的本意是什么的。
{
for(k=0;k<j;k++)
{
if(B[k].color==A[i])
{
found=true;
B[k].num++;
j++;
break;
}
}
if(!found)
{
B[j].color=A[i];
}
}
这一段代码太难看懂了,你再好好想想,这里有错误
found只初始化了一次。你的本意是什么的。
更多追问追答
追问
found 的意思是找到相同的颜色,让他的数目加一,否则没找到,新建一个bolloon
found 意思是找到相同颜色的球,若为false ,则新添加个球
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询