某学校选举学生会主席,有赵青、钱花、孙瓷三人参选。c语言编写程序统计候选人选票,并输出每个候选人得票数和当选情况
#include <stdio.h>
int main() {
int zhaoqing_votes = 0;
int qianhua_votes = 0;
int sunci_votes = 0;
int total_votes = 0;
// 统计选票
int vote;
while (1) {
printf("请输入选票(1-赵青,2-钱花,3-孙瓷,0-结束投票):");
scanf("%d", &vote);
if (vote == 0) {
break;
} else if (vote == 1) {
zhaoqing_votes++;
} else if (vote == 2) {
qianhua_votes++;
} else if (vote == 3) {
sunci_votes++;
} else {
printf("无效的选票!\n");
}
total_votes++;
}
// 输出候选人得票数
printf("赵青得票数:%d\n", zhaoqing_votes);
printf("钱花得票数:%d\n", qianhua_votes);
printf("孙瓷得票数:%d\n", sunci_votes);
printf("总投票数:%d\n", total_votes);
// 判断当选情况
if (zhaoqing_votes > qianhua_votes && zhaoqing_votes > sunci_votes) {
printf("赵青当选为学生会主席!\n");
} else if (qianhua_votes > zhaoqing_votes && qianhua_votes > sunci_votes) {
printf("钱花当选为学生会主席!\n");
} else if (sunci_votes > zhaoqing_votes && sunci_votes > qianhua_votes) {
printf("孙瓷当选为学生会主席!\n");
} else {
printf("无人当选!\n");
}
return 0;
}
供参考:
#include<stdio.h>
int main()
{
int i, m;
int a[4] = { 0 };
char *name[4] = {"候选人","赵青","钱花","孙瓷"};
printf("请输入选票(1-赵青,2-钱花,3-孙瓷,0-结束投票):");
while (scanf("%d",&m)==1 && m != 0 )
{
if (m <= 3) a[m]++;
}
for (i = 1; i < 4; i++){
if (a[a[0]] < a[i]) a[0] = i; // 得票最多的位号计入 a[0]
printf("%s得票数:%d\n",name[i],a[i]);
}
printf("%s当选学生会主席!", name[a[0]]);
return 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话:if语句也可以没有花括号{}
比如:
if (a>b)
printf("%d",123);
当没有大括号的时候 紧跟在if后面的那句语句将作为if成立后执行的语句
同样的 else也可以没有花括号
比如:
if (a>b)
printf("success");
else
printf("%d",404);
在省略了花括号之后 只有if或else的后面一句语句会生效
而有了花括号之后 可以执行一个语句块 即多行代码
选举人数共100人,候选人姓名为赵青、钱花、孙瓷。
以下是c语言程序代码:
#include <stdio.h>
int main()
{
int zq_vote = 0, qh_vote = 0, sc_vote = 0; // 分别表示赵青、钱花、孙瓷得票数
int num_voters = 100; // 选举人数
int i;
int vote;
printf("欢迎参加主席选举!\n");
printf("本次选举共有%d名选民\n", num_voters);
printf("候选人如下:赵青、钱花、孙瓷\n");
for (i = 1; i <= num_voters; i++)
{
printf("第%d位选民,请输入您的选择:1.赵青,2.钱花,3.孙瓷\n", i);
scanf("%d", &vote);
switch (vote)
{
case 1:
zq_vote++;
break;
case 2:
qh_vote++;
break;
case 3:
sc_vote++;
break;
default:
printf("您的输入有误,请输入1~3中的一个数字\n");
i--;
break;
}
}
printf("本次选举结果如下:\n");
printf("赵青得票:%d\n", zq_vote);
printf("钱花得票:%d\n", qh_vote);
printf("孙瓷得票:%d\n", sc_vote);
if (zq_vote > qh_vote && zq_vote > sc_vote)
{
printf("恭喜赵青当选!\n");
}
else if (qh_vote > zq_vote && qh_vote > sc_vote)
{
printf("恭喜钱花当选!\n");
}
else if (sc_vote > zq_vote && sc_vote > qh_vote)
{
printf("恭喜孙瓷当选!\n");
}
else
{
printf("三位候选人票数相同,本次选举无法产生当选人\n");
}
return 0;
}