当前位置: 代码迷 >> C语言 >> ``挑战C程序编程``
  详细解决方案

``挑战C程序编程``

热度:646   发布时间:2006-12-27 21:04:51.0
``挑战C程序编程``

用C语言编写一个程序,实现入下功能:
有一个班采用民主投票方式推选班长,班长候选人共4位,每个人代号分别位1,2,3,4。每名同学填写一张选票,写上同意作为班长的一位候选人的代号。统计每一位班长候选人所得到的选票数,其中每张选票上的所填代号由键盘输入,数字0作为输入终止标志。

要求输出选票统计结果及最终哪位候选人当选为班长。求获得选票最多的候选人的功能要求用函数实现。
具体要求如下:
1、 编写主程序,接收有效的选票,要求:(请参照下面的“运行结果示意图”)
1)、输入数据前,给出如下提示信息:
开始选举。请注意:有效候选人代号为:1,2,3,4。
请输入班长候选人代号(数字0结束):
2)、循环执行接收键盘输入的班长候选人代号,直到输入的数字为0,结束选票的输入工作
3)、在接收每次输入的选票后要求验证改选票是否有效,即:如果输入的数不是0,1,2,3,4这5个数字之一,应显示出错误提示信息如下:
此选票无效
4)、在接收选票的同时统计每个候选人的得票数
5)、当接受到输入得数字是0时,选举结束。屏幕输出提示信息:
选举结束
6)、输出统计每个候选人获得票数得结果
7)、调用函数process(),获取得票最多的候选人(也就是最终的当选者)的代号
8)、输出选举的最终结果,即哪个候选人当选为班长。
2、 编写函数process()求获得选票最多的候选人代号:
1)、比较4位候选人所得的选票数,求得选票数最多的候选人代码;
2)、函数返回选票最多的候选人代码;
3、 在实现功能的同时,要求注意编程规范:程序逻辑分明,关键代码有注释,书写有缩进。


[此贴子已经被作者于2006-12-27 22:51:36编辑过]

搜索更多相关的解决方案: 挑战  

----------------解决方案--------------------------------------------------------
int a[5]={0,0,0,0,0};//记录各候选人的得票数.
while(1)
{
scanf("%d",&n);
if(n==0)
{
printf("投票结束\n");
break;
}
if(n>=1&&n<=4)
{
a[n]++;
}
else
{
printf("此票无效\n");
}
}
----------------解决方案--------------------------------------------------------
嗯``程序是编好了```可是没有按照要求去编``嘻嘻``没有达到那个目的```

再详细研究研究```
----------------解决方案--------------------------------------------------------

不想写的这么详细.


----------------解决方案--------------------------------------------------------
``看到那张图了吗```?
----------------解决方案--------------------------------------------------------
有什么特殊的含义吗?不明白其中的意思.
----------------解决方案--------------------------------------------------------
不就是老谭书上面的例题嘛
----------------解决方案--------------------------------------------------------
这是偶写的,刚学的,写的不好,多多指教
#include<stdio.h>
void process(int a[]);
void main()
{
int b[4]={0,0,0,0},i,n;
char c;
printf("1、班长A 2、班长B 3、班长C 4、班长D 0、结束");
do
{
printf("\n选出你理想的班长代码:");
scanf("%d",&i);
if(i<5&&i>0)
b[i-1]++;
if(i<0||i>=5)
printf("此选票无效");
}while(i!=0);
printf("\n投票结束!\n");
printf("班长A的选票数是:%d",b[0]);
printf("\n班长B的选票数是:%d",b[1]);
printf("\n班长C的选票数是:%d",b[2]);
printf("\n班长D的选票数是:%d",b[3]);
process(b);
}
void process(int a[])
{
int max,i;
max=a[0];
for(i=1;i<4;i++)
{
if(max<a[i])
max=a[i];
}
printf("\n最后的班长人选的代码是:%d\n",max);
}
----------------解决方案--------------------------------------------------------
很简单的一题

题目却吓人.....

----------------解决方案--------------------------------------------------------
```是吗```?
----------------解决方案--------------------------------------------------------
  相关解决方案