用户:
LCF_viki617查看:8 回复:2 评论:8 创建时间:2020-05-01T19:49:21

#include<bits/stdc++.h>
using namespace std;
//声明结构体,用于存储候选人信息
struct toup
{
string name;
int v;
};
//主函数
int main()
{
//输入候选人相关数据
int n;
toup:cout<<"请输入候选人数量:\a"<<endl;
cin>>n;
toup t[n];
cout<<"请输入候选人名称:\a"<<endl;
for(int i=0;i<n;i++)
{
cin>>t[i].name;
}
for(int i=0;i<n;i++)
{
t[i].v=0;
}
cout<<"请输入总票数!\a"<<endl;
int temp;
cin>>temp;
cout<<"一共可以投"<<temp<<"票!"<<endl;
for(int i=0;i<n;i++)
{
cout<<"输入"<<i+1<<"为"<<t[i].name<<"投票\a"<<endl;
}
//进行投票
int k;
for(int i=0;i<temp;i++)
{
cin>>k;
if(k>0&&k<=n)
{
t[k-1].v+=1;
}
}
//输出票数
for(int i=0;i<n;i++)
{
cout<<"候选人"<<t[i].name<<"得票:"<<t[i].v<<endl;
}
cout<<"\a";
//对投票结果进行冒泡排序
int h;
string nh;
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-i;j++)
{
if(t[j].v>t[j+1].v)
{
//对候选人票数进行交换
h=t[j+1].v;
t[j+1].v=t[j].v;
t[j].v=h;
//对候选人姓名进行交换
nh=t[j+1].name;
t[j+1].name=t[j].name;
t[j].name=nh;
}
if(t[j].v==t[j+1].v)
{
cout<<"有候选人票数相等,请重新投票!"<<endl;
goto toup;
}
}
}
//输出选举结果
cout<<"候选人\a"<<t[n-1].name<<"得票最多,得票:"<<t[n-1].v<<"票,胜出!"<<endl;
//询问是否重新投票
cout<<"如果想重新投票,请按Y,否则请按任意键退出!\a"<<endl;
char yn;
cin>>yn;
if(yn=='Y'||yn=='y')
{
cout<<"投票程序已重新开始!"<<endl;
goto toup;
}
else
{
return 0;
}
}