有三个候选人,每个选民只能投一票,写一程序,用结构体存储数据,求出得票结果。 三个候选人为"li", "zhang","sun"。
时间: 2023-05-31 18:19:01 浏览: 817
结构体数组应用举例-C++结构体struct
### 回答1:
好的,以下是用C语言编写的程序,用结构体存储数据,求出三个候选人的得票结果:
```
#include <stdio.h>
#include <string.h>
// 定义结构体存储候选人信息
struct Candidate {
char name[20]; // 候选人姓名
int votes; // 候选人得票数
};
int main() {
// 初始化三个候选人信息
struct Candidate li = {"li", };
struct Candidate zhang = {"zhang", };
struct Candidate sun = {"sun", };
// 读取选民投票信息
int num_voters;
printf("请输入选民人数:");
scanf("%d", &num_voters);
for (int i = ; i < num_voters; i++) {
char vote[20];
printf("请输入第%d个选民的投票:", i+1);
scanf("%s", vote);
// 根据投票结果更新候选人得票数
if (strcmp(vote, "li") == ) {
li.votes++;
} else if (strcmp(vote, "zhang") == ) {
zhang.votes++;
} else if (strcmp(vote, "sun") == ) {
sun.votes++;
} else {
printf("无效的投票!\n");
}
}
// 输出候选人得票结果
printf("得票结果如下:\n");
printf("%s: %d\n", li.name, li.votes);
printf("%s: %d\n", zhang.name, zhang.votes);
printf("%s: %d\n", sun.name, sun.votes);
return ;
}
```
程序运行时,会先要求输入选民人数,然后依次读取每个选民的投票信息,根据投票结果更新候选人的得票数。最后输出三个候选人的得票结果。
### 回答2:
这个问题需要用到结构体和数组,可以先定义一个结构体来表示候选人的信息,包括姓名和得票数。代码如下:
```c
#include <stdio.h>
struct candidate {
char name[30];
int votes;
};
int main() {
struct candidate li = {"li", 0};
struct candidate zhang = {"zhang", 0};
struct candidate sun = {"sun", 0};
struct candidate candidates[] = {li, zhang, sun};
int num_voters;
printf("请输入投票人数:");
scanf("%d", &num_voters);
for (int i = 0; i < num_voters; i++) {
char name[30];
printf("请输入投票人姓名:");
scanf("%s", name);
for (int j = 0; j < 3; j++) {
if (strcmp(name, candidates[j].name) == 0) {
candidates[j].votes++;
}
}
}
printf("得票结果:\n");
for (int i = 0; i < 3; i++) {
printf("%s: %d\n", candidates[i].name, candidates[i].votes);
}
return 0;
}
```
首先定义了三个候选人的结构体,然后将它们放到一个数组中。用户输入投票人数后,使用循环依次询问每个投票人的姓名,并将对应候选人的票数加1。最后遍历数组输出得票结果。
### 回答3:
这道题可以用结构体来存储候选人数据,由于每个选民只能投一票,所以我们可以扫描每个选民的选票,并对应加上候选人的得票数。
我们可以定义一个结构体Candidate,包含两个字段——名字和得票数。
然后我们可以定义三个Candidate变量——li,zhang,sun,并把它们的名字和得票数初始化。
接下来在程序中输入每个选民的投票,并根据输入的名字加上对应候选人的得票数。
最后统计每个候选人的得票数,输出得票结果。
下面是代码示例:
```c++
#include <iostream>
using namespace std;
// 定义候选人结构体
struct Candidate {
string name;
int votes;
};
int main() {
// 初始化候选人数据
Candidate li = {"li", 0};
Candidate zhang = {"zhang", 0};
Candidate sun = {"sun", 0};
// 接受选民的投票
string vote;
while(cin >> vote) {
if(vote == "li") {
li.votes++;
} else if(vote == "zhang") {
zhang.votes++;
} else if(vote == "sun") {
sun.votes++;
}
}
// 统计得票结果
cout << li.name << "得票数:" << li.votes << endl;
cout << zhang.name << "得票数:" << zhang.votes << endl;
cout << sun.name << "得票数:" << sun.votes << endl;
return 0;
}
```
这样我们就可以用结构体存储数据,实现对数投票的得票结果统计了。
阅读全文