编程语言
首页 > 编程语言> > 编程统计候选人的得票数。有若干位候选人(n<=10),候选人姓名从键盘输入(候选人姓名不区分大小写,姓名最长为9个字节),若干位选民,选民每次输入一个得票的候选人的名字(姓名最长为9个字节),若

编程统计候选人的得票数。有若干位候选人(n<=10),候选人姓名从键盘输入(候选人姓名不区分大小写,姓名最长为9个字节),若干位选民,选民每次输入一个得票的候选人的名字(姓名最长为9个字节),若

作者:互联网

#include <iostream>
#include <cstring>
using namespace std;
struct sign
{
char name[20];
int num;
int flag;
}x[105],y[105],z[105];
int main()
{
int n;
cin>>n;
int i,j;
for(i=1;i<=n;i++)
{
cin>>x[i].name;
for(j=0;j<strlen(x[i].name);j++)
{
x[i].name[j]=tolower(x[i].name[j]);
}
x[i].num=0;
x[i].flag=0;
}
int m,t,sum=0;
cin>>m;
for(i=1;i<=m;i++)
{
cin>>y[i].name;
strcpy(z[i].name,y[i].name);
for(j=0;j<strlen(y[i].name);j++)
{
y[i].name[j]=tolower(y[i].name[j]);
}
y[i].flag=0;
}

for(i=1;i<=m;i++)
{t=0;
for(j=1;j<=n;j++)
{
if(strcmp(x[j].name,y[i].name)==0)
{
x[j].num++;t=1;break;
}
}
if(t==0)
{
y[i].flag=1;sum++;
}
}

for(i=1;i<=n;i++)
{
for(j=1;j<=n-i;j++)
{
if(x[j].num<x[j+1].num)
{
x[0]=x[j];x[j]=x[j+1];x[j+1]=x[0];
}
}
}
for(i=1;i<=n;i++)
{
cout<<x[i].name<<':'<<x[i].num<<endl;
}
if(sum!=0)
{cout<<endl;
cout<<"invalid vote:"<<endl;
for(i=1;i<=m;i++)
{
if(y[i].flag!=0)
{
cout<<z[i].name<<endl;
}
}
}
return 0;

}

标签:name,int,cout,cin,得票,flag,num,姓名,候选人
来源: https://www.cnblogs.com/iceforever7/p/16213998.html