【C语言篇】:一维数组练习题:统计候选人得票

【题目描述】:统计得票。有四位候选人,编号分别为:1、2、3、4,统计每位候选人得票。

思考&分析:这个题目的描述很简单,但是具体用代码去写的时候该从哪里下手呢?我们关键要思考以下几个问题:
1:我们知道有多少个投票者吗?
2:如何实现投票者投票,并且把相应候选人的票数分别累加。
解决:
1:根据题目,我们不知道有多少个投票者。<难点>
2:不知道有多少个投票者,但又要实现每个投票者都能投票。可以用循环来解决。每次循环由一个投票者进行投票,投票方式为输入一个数字(其实这里说字符更严谨,因为数字都代表一些数量的、顺序的关系),这个数字(字符)和参赛者对应(字符1对应1号参赛者,字符2对应2号参赛者…)。因为这里不用明确,或者是根本没有办法知道有多少次循环,所以我们可以采用while循环来进行。< Key>

代码如下:

//【题目描述】:统计得票。有四位候选人,编号分别为:1、2、3、4,统计每位候选人得票。
#include<stdio.h>
int main()
{
	int sum[4] = { 0 };//创建一个数组,里面四个元素,分别对应四个人的票数总和
	int c = 0;
	int i = 0;
	printf("请为候选人投票:");
	while ((c = getchar()) != '\n')//按下回车’\n'说明所有人已经投票完成
	{
		if (c == '1')
		{
			sum[0]++;
		}
		else if (c == '2')
		{
			sum[1]++;
		}
		else if (c == '3')
		{
			sum[2]++;
		}
		else if (c == '4')
		{
			sum[3]++;
		}
	}
	for (i = 0; i < 4; i++)
	{
		printf("%d号选手总票数:%d\n", i + 1, sum[i]);
	}
	return 0;
}

运行结果如下:
【C语言篇】:一维数组练习题:统计候选人得票_第1张图片

总结:其实这个题目并不是很难。它的关键点在于,如何在不知道投票者人数的情况下,实现投票者对候选人的投票。
运用到的知识:一维数组、while循环、for循环、getchar()、级联if-else

你可能感兴趣的:(C/C++,c语言,算法)