⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c05_15.c

📁 这是编程之道C-C++中的源代码,很简练,可以用于相关教学和重新熟悉C-C++时使用
💻 C
字号:
/* 选举总统的例程*/
#include <stdio.h>
#include <string.h>
#define N  3			/*设定候选人的个数*/
#define M  12			/*设定参加选举人的个数*/
int main()
{
	char	candidate[N][12];	/*用来记录候选人的姓名*/
	char	temp[12];	/*用来记录投票时所选举的候选人名*/
	int		point[N];	/*用来记录每个候选人的得票情况*/
	int		i,j;		/*程序循环所用变量*/
	int		flag=0;		/*是否有两人得票超过半数标志,初始值0为未超过*/
	int		k;			/*判断是否有两人得票超过半数的循环计数*/
	/*初始化候选人名以及候选人得票记录*/
	printf("请输入候选人姓名(共3人):\n");
	for (i = 0; i < N; i++)
	{
		gets(candidate[i]);
		point[i] = 0;
	}
	/*进行投票过程*/
	printf("请输入所投候选人姓名(共12票):\n");
	i=0;
	while(i < M)			/*M个人进行投票,并完成统计计票工作*/
	{
		gets(temp);					/*参加选举人投temp的票*/
		for (j = 0; j < N; j++)		/*统计是哪个候选人的票*/
			if (strcmp(candidate[j],temp) == 0)
			{
				point[j]++;
				break;
			}
		if( j==N ) /* 选票无效 */
		{
			printf("此选票无效\n");
			continue;
		}
		i++;
	}
	putchar('\n');
	printf("选举结果:\n");
	/*进行分析,看是否有人当选总统,并输出每个候选人的选票数*/
	for (i = 0; i < N; i++)
	{
		if (point[i] >= M/2)
		{
			for (k=i+1; k<N; k++)
			if (point[k]>=M/2)
			{
				flag=1;		/*有两个人得票均为半数*/
				printf("请在%s,%s之间重选!!!\n", candidate[i], candidate[k]);
							/*提示在两个人之间重选*/
				break;
			}
			if (flag==1)
				break;		/*有两人得票均为半数*/
			else
				printf("%s 当选新总统!\n",candidate[i]);
		}
		else
			printf("%s 落选! ",candidate[i]);
		printf("其得票数为:%d\n",point[i]);
	}
	/* candidate[i],candidate[k]是各得半票的候选人,下面从此二人中选择 */
	/*在两个得票均为半数的候选人之间重选进行选举*/
	if (flag==1)
	{
		/*进行投票过程*/
		flag=0;		/*改变标志*/
		printf("请重新输入所投候选人姓名:\n");
		j=0;
		while( j < M )		/*M个人进行投票,并完成统计计票工作*/
		{
			gets(temp);			/*参加选举人投temp的票*/
			if (strcmp(candidate[i],temp) == 0)
			{
				point[i]++;		/*candidate[i]得票*/
				j++;
			}
			else  
			if (strcmp(candidate[k],temp) == 0)
			{
				point[k]++; /*candidate[k]得票*/
				j++;
			}
			else
				printf("本选票无效!!!,请在%s, %s,两候选人之间投票。\n",
						candidate[i], candidate[k]);
		}		/* end of while*/
		
		/*显示投票结果*/
		if (point[i]>point[k])
			printf("%s 当选新总统!\n",candidate[i]);
		else
			printf("%s 当选新总统!\n",candidate[k]);
	}
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -