编,链都可以过.但我这个问题好象在于, s=can[j].votes/sum; 这里的sum用的是初始化的值,而cout<<" "<<setw(7)<<"Total"<<setw(7)<<sum<<endl;这里的sum又是累加后的值,这是让我好为难啊.请问应该怎么改啊?
谢谢了.
另外大家知道能实现这个问题的更简单的方法吗?
我这个是应该是最复杂的了.:)
#include<iostream>
#include<iomanip>
using namespace std;
class candidate
{
public:
char name[5];
int votes;
void getdata()
{
cout<<"请输入候选人信息:(姓名 票数)";
cin>>name>>votes;
}
void dispaly()
{
cout<<" "<<name<<setw(7)<<votes;
}
};
int main()
{
candidate can[5];
int sum=0,ava,k,s;
for(int j=0;j<5;j++)
{
can[j].getdata();
sum+=can[j].votes;
}
cout<<"候选人"<<setw(7)<<"票数"<<setw(10)<<"百分率"<<endl;
for(j=0;j<5;j++)
{
can[j].dispaly();
s=can[j].votes/sum;
ava=s*100;
cout<<setw(6)<<ava<<endl;
}
for(j=0;j<4;j++)
{
for(int i=j+1;i<5;i++)
{
if(can[j].votes < can[i].votes)
k=i;
else
k=j;
}
}
cout<<" "<<setw(7)<<"Total"<<setw(7)<<sum<<endl;
cout<<"获胜的候选人是:"<<can[k].name<<endl;
return 0;
}