输出样例如图所示:
代码如下:
#include <iostream>
#include <cstring>
using namespace std;
struct Candidate
{
char name[20];
int votes;
};
int main()
{
Candidate candidates[6] = { {"A", 0}, {"B", 0}, {"C", 0}, {"D", 0}, {"E", 0}, {"F", 0} };
char voteName[20];
for (int i = 0; i < 10; i++)
{
cout << "请输入第" << i + 1 << "位评委投票的候选人:";
cin >> voteName;
for (int j = 0; j < 6; j++)
{
if (strcmp(voteName, candidates[j].name) == 0)
{
candidates[j].votes++;
break;
}
}
}
cout << "得票结果:" << endl;
for (int i = 0; i < 6; i++)
{
cout << candidates[i].name << ":" << candidates[i].votes << endl;
}
return 0;
}
解释如下:
1. 定义结构体
Candidate
struct Candidate { char name[20]; int votes; };
struct
关键字用于定义一个结构体类型Candidate
。char name[20];
:定义一个长度为 20 的字符数组name
,用于存储候选人的姓名。int votes;
:定义一个整型变量votes
,用于记录该候选人获得的票数。2.
main
函数int main() { // ... return 0; }
main
函数是程序的入口点,程序从这里开始执行。return 0;
:表示程序正常结束,并返回状态码 0。3. 初始化候选人数组
Candidate candidates[6] = { {"A", 0}, {"B", 0}, {"C", 0}, {"D", 0}, {"E", 0}, {"F", 0} };
- 定义一个包含 6 个
Candidate
结构体元素的数组candidates
。- 每个元素都初始化为一个候选人的信息,姓名分别为 "A", "B", "C", "D", "E", "F",初始票数都为 0。
4. 投票过程
char voteName[20]; for (int i = 0; i < 10; i++) { cout << "请输入第" << i + 1 << "位评委投票的候选人:"; cin >> voteName; for (int j = 0; j < 6; j++) { if (strcmp(voteName, candidates[j].name) == 0) { candidates[j].votes++; break; } } }
char voteName[20];
:定义一个长度为 20 的字符数组voteName
,用于存储评委输入的候选人姓名。- 外层
for
循环执行 10 次,模拟 10 位评委进行投票。
cout << "请输入第" << i + 1 << "位评委投票的候选人:";
:提示用户输入第i+1
位评委投票的候选人姓名。cin >> voteName;
:读取用户输入的候选人姓名。- 内层
for
循环遍历candidates
数组,查找输入的候选人姓名是否存在。
if (strcmp(voteName, candidates[j].name) == 0)
:使用strcmp
函数比较voteName
和candidates[j].name
是否相等。如果相等,说明找到了对应的候选人。candidates[j].votes++;
:将该候选人的票数加 1。break;
:找到候选人后,跳出内层循环,继续下一位评委的投票。5. 输出得票结果
cout << "得票结果:" << endl; for (int i = 0; i < 6; i++) { cout << candidates[i].name << ":" << candidates[i].votes << endl; }
cout << "得票结果:" << endl;
:输出提示信息,表示接下来将输出得票结果。- 遍历
candidates
数组,使用cout
输出每个候选人的姓名和得票数。综上所述,这段代码通过模拟 10 位评委的投票过程,记录 6 位候选人的得票情况,并最终输出得票结果。
觉得有帮助就给博主点个关注叭~~
有问题的可以私信或者在评论区一起交流
友友们一起加油叭QAQ