A30634选票统计题解(不使用结构题)
2026-08-31 13:40:16
发布于:广东
4阅读
0回复
0点赞
这里我是没有用结构体的,我们可以分析一下题目:这里题目说了保证每一个人名都是Li,Zhang和Fun中的某一个。保证每一个人名都是Li,Zhang和Fun中的某一个。
那么我们先输入
int n;//表示有n张选票
cin >> n;//输入
string a[105];//定义字符串数组储存这n个人的选票信息
int b[5]{};//用来计数Li,Zhang和Fun每人的得票数
再用for循环判断a[i]究竟投给了哪个人,那个人的对应的计数器+1
for(int i = 1;i <= n;i++){//for循环遍历从1~n
cin >> a[i];//输入这n个人的选票信息
if(a[i] == "Li"){//判断如果这第i个人投的如果是Li
b[1]++;//那么对应Li的位置+1
}
if(a[i] == "Zhang"){//判断如果这第i个人投的如果是Zhang
b[2]++;//那么对应Zhang的位置+1
}
if(a[i] == "Fun"){//判断如果这第i个人投的如果是Fun
b[3]++;//那么对应Fun的位置+1
}
}
最后再输出这三个人最终的投票结果(也就是有多少人投了他)
cout << "Li:" << b[1] << endl;//输出Li的选票结果
cout << "Zhang:" << b[2] << endl;//输出Zhang的选票结果
cout << "Fun:" << b[3];//输出Fun的选票结果
整体代码:
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;//表示有n张选票
cin >> n;//输入
string a[105];//定义字符串数组储存这n个人的选票信息
int b[5]{};//用来计数Li,Zhang和Fun每人的得票数
for(int i = 1;i <= n;i++){//for循环遍历从1~n
cin >> a[i];//输入这n个人的选票信息
if(a[i] == "Li"){//判断如果这第i个人投的如果是Li
b[1]++;//那么对应Li的位置+1
}
if(a[i] == "Zhang"){//判断如果这第i个人投的如果是Zhang
b[2]++;//那么对应Zhang的位置+1
}
if(a[i] == "Fun"){//判断如果这第i个人投的如果是Fun
b[3]++;//那么对应Fun的位置+1
}
}
cout << "Li:" << b[1] << endl;//输出Li的选票结果
cout << "Zhang:" << b[2] << endl;//输出Zhang的选票结果
cout << "Fun:" << b[3];//输出Fun的选票结果
}
无注释版:
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >> n;
string a[105];
int b[5]{};
for(int i = 1;i <= n;i++){
cin >> a[i];
if(a[i] == "Li"){
b[1]++;
}
if(a[i] == "Zhang"){
b[2]++;
}
if(a[i] == "Fun"){
b[3]++;
}
}
cout << "Li:" << b[1] << endl;
cout << "Zhang:" << b[2] << endl;
cout << "Fun:" << b[3];
}
这代码比结构体好理解一点(仅个人观点)
这里空空如也




有帮助,赞一个