投票计划CPP帮助(输出错误)

时间:2016-11-11 21:02:35

标签: c++ voting-system

首先感谢阅读。我想写的程序必须遵循:

在大古斯拉鲁市市长的选举中,从1到M的数字中选出了M个候选人.N选民中的每一个都对其中一人进行了重要投票。 编写一个程序,读取描述投票,然后给出市长选举候选人的投票结果和编号。 根据Great Guslaru的选举法,如果两名或两名以上的候选人获得相同的票数,那么选举将由数量较少的人赢得。

入口

输入的第一行包含两个整数M和N(1 <= M <= 10,1 <= N <= 1000),确定适当的候选数量和投票数。 第二行是从1到M的N个整数。这些是给个人声音的候选人数。

退出

在前M行中,输出应以数字从1到M的候选人赢得的序列号给出,格式为“X:Y”, 其中X是候选人的编号,Y是投票的投票数。然后一条单独的行应该包含赢得选举的候选人的号码。

示例

入口:
3 10
 1 3 2 1 2 3 3 3 2 2

退出:
1:2
 2:4
 3:4

我现在的代码是:

#include <iostream>

using namespace std;

int main()
{
int c,v,tab[100],sum,p;
sum=0;
cin>>c>>v;
for(p=1;p<=v;p++)
       cin>>tab[p];

for(int i=1;i<=c;i++){

       if (i==tab[p]){
           sum+=tab[p]+1;
        }
cout<<i<<": ";
cout<<sum<<endl;
}
return 0;

}

我的输出如下:

1:0
 2:0
 3:0

到目前为止,我已经想到它似乎所做的就是拿出并输出总和。任何提示或建议?感谢。

1 个答案:

答案 0 :(得分:0)

免责声明我尚未对此进行测试

首先,您应该对代码更加整洁。给出正确的不言自明的名称并使用缩进来更清楚地显示循环。

#include <iostream>
using namespace std; 

int main() 
{ 

在他们自己的行上初始化变量,并为他们提供信息丰富的名称。

   int candidateAmount;
   int voteAmount;

   cin >> candidateAmount
       >> voteAmount;

数组在c ++中是零基础的。因此,从索引0到99将运行100个元素数组。

   int votes[voteAmount];
   int votesPerCandidate[candidateAmount];
   for (int voteCount = 0; voteCount < voteAmount; ++voteCount) 
   {
     int currentVote = 0;
     cin >> currentVote; 
     votes[voteCount] = currentVote;
     ++votesPerCandidate[currentVote];
   } 


   for (int candidateCount = 0; candidateCount < candidateAmount ; ++candidateCount)
    { 
       cout << candidateCount + 1 << ": " 
       votesPerCandidate[candidateCount] << endl;
    } 
    return 0; 
}