投票程序 CPP 帮助(错误输出)
Voting Program CPP help (wrong output)
首先感谢阅读。我要编写的程序必须执行以下操作:
在大古斯拉鲁市长的选举中,选出了M个用1到M的数字标记的候选人,N位选民每人都投了重要的一票。
编写一个读取描述投票的程序,然后给出市长选定候选人的投票结果和数量。
根据大古斯拉鲁的选举法,如果两名或两名以上的候选人获得相同的、最高票数,则由票数较低的人获胜。
入口
第一行输入有两个整数M和N(1 <= M <= 10, 1 <= N <= 1000),确定合适的候选人数和投出的票数。
第二行是1到M的N个整数,这些是候选人的个数,给了个人的声音。
退出
在前M行中,输出的是候选人得票的序号,从1到M,格式为"X: Y",
其中 X 是候选人的人数,Y - 投给它的票数。 Then a separate line should contain the number of the candidate who won the election.
例子
入口:
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
到目前为止我已经弄清楚它似乎所做的就是获取并输出总和。有什么提示或建议吗?谢谢
免责声明我还没有测试过这个
首先,您的代码应该更整洁一些。给出适当的不言自明的名称并使用缩进更清楚地显示循环。
#include <iostream>
using namespace std;
int main()
{
在各自的行上初始化变量并为它们提供信息名称。
int candidateAmount;
int voteAmount;
cin >> candidateAmount
>> voteAmount;
数组在 C++ 中是从零开始的。一个 100 元素的数组将 运行 因此从索引 0 到 99。
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;
}
首先感谢阅读。我要编写的程序必须执行以下操作:
在大古斯拉鲁市长的选举中,选出了M个用1到M的数字标记的候选人,N位选民每人都投了重要的一票。 编写一个读取描述投票的程序,然后给出市长选定候选人的投票结果和数量。 根据大古斯拉鲁的选举法,如果两名或两名以上的候选人获得相同的、最高票数,则由票数较低的人获胜。
入口
第一行输入有两个整数M和N(1 <= M <= 10, 1 <= N <= 1000),确定合适的候选人数和投出的票数。 第二行是1到M的N个整数,这些是候选人的个数,给了个人的声音。
退出
在前M行中,输出的是候选人得票的序号,从1到M,格式为"X: Y", 其中 X 是候选人的人数,Y - 投给它的票数。 Then a separate line should contain the number of the candidate who won the election.
例子
入口:
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
到目前为止我已经弄清楚它似乎所做的就是获取并输出总和。有什么提示或建议吗?谢谢
免责声明我还没有测试过这个
首先,您的代码应该更整洁一些。给出适当的不言自明的名称并使用缩进更清楚地显示循环。
#include <iostream>
using namespace std;
int main()
{
在各自的行上初始化变量并为它们提供信息名称。
int candidateAmount;
int voteAmount;
cin >> candidateAmount
>> voteAmount;
数组在 C++ 中是从零开始的。一个 100 元素的数组将 运行 因此从索引 0 到 99。
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;
}