班级竞选班长,共计有三个候选人,输入参加投票的人数和每个人选举的内容,输出三个候选人最终的得票及无效选票。
#include <stdio.h>
#define N 50
int main() {
//定义投票人数,候选人,和无效票
int persion,one=0,two=0,three=0,invalid=0;
//创建数组,用于存票数
int arr[N];
printf("请输入参与投票的人数:");
scanf("%d",&persion);
printf("请输入候选人的编号(1、2、3):");
//for循环遍历初始化数组,将投票编号存入数组
for(int i=0;i<persion;i++){
scanf("%d",&arr[i]);
}
//取出投票编号,进行判断
for(int i=0;i<persion;i++){
if(arr[i]==1){
one++;
}else if(arr[i]==2){
two++;
}else if(arr[i]==3){
three++;
}else{
invalid++;
}
}
//打印输出结果
printf("候选人1:%d票\n",one);
printf("候选人2:%d票\n",two);
printf("候选人3:%d票\n",three);
printf("无效票为:%d票\n",invalid);
}
使用动态分配内存方法,创建指针数组
#include <stdio.h>
//导入头文件,才能使用malloc函数
#include <stdlib.h>
int main() {
//定义投票人数,候选人,和无效票
int persion,one=0,two=0,three=0,invalid=0;
//定义int类型的指针
int* a;
printf("请输入参与投票的人数:");
scanf("%d",&persion);
//使用malloc函数和sizeof函数分配动态内存空间
a=(int*)malloc(persion*sizeof(int));
printf("请输入候选人的编号(1、2、3):");
//for循环遍历初始化数组,将投票编号存入数组
for(int i=0;i<persion;i++){
scanf("%d",&s[i]);
}
//取出投票编号,进行判断
for(int i=0;i<persion;i++){
if(a[i]==1){
one++;
}else if(a[i]==2){
two++;
}else if(a[i]==3){
three++;
}else{
invalid++;
}
}
//打印输出结果
printf("候选人1:%d票\n",one);
printf("候选人2:%d票\n",two);
printf("候选人3:%d票\n",three);
printf("无效票为:%d票\n",invalid);
//释放动态分配的内存
free(a);
}