标题:这程序问题太多,晕死了.
取消只看楼主
当当
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2004-4-30
 问题点数:0 回复次数:2 
这程序问题太多,晕死了.

/*本题为模拟选班长,在1-4中选一个数投票,直到0结束为止, 要求1.如果直接按0,投票结束直接退出程序,2.显示出胜利者*/ #include <stdio.h> int xuanpiao(int num[]); void main() { static int num[4]; static int i,n,win; printf("注意!按'0'结束投票哦!\n请在(1~4)位候选人中投上您的一票:\n"); while(1) { scanf("%d",&n); if(n==1) num[0]++; else if(n==2) num[1]++; else if(n==3) num[2]++; else if(n==4) num[3]++; else if(n==0) { printf("投票结束!\n");break; } else printf("投票无效,请继续投票!"); } win=xuanpiao(num); printf("胜利者是:%d\n",win); }

int xuanpiao(int num[]) { static int max,i,xb; max=num[0]; for(i=1;i<4;i++) { if(max<num[i]) { max=num[i]; xb=i+1; } } return (xb); }

大家请运行一次,就知道问题所在了,1.输入0不投票,2.输入有并列多的票数.请指点此程序应该怎么改一下.

搜索更多相关主题的帖子: num int else 
2004-06-28 23:46
当当
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2004-4-30
得分:0 
zff_ff ,我希望这个程序有这样的功能,比如直接输入0,显示投票结束,然后退出程序,但我直接输入0后,显示为投票结束,胜利者是1.这是怎么回事啊.

学好编程就能编出自己的未来! 加油!自信!努力!奋斗!
2004-06-29 11:16
当当
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2004-4-30
得分:0 

#include <stdio.h> void main() { static int num[4]; int i,n,max; printf("注意!按'0'结束投票哦!\n请在(1~4)位候选人中投上您的一票:\n"); while(1) { scanf("%d",&n); if(n==1) num[0]++; else if(n==2) num[1]++; else if(n==3) num[2]++; else if(n==4) num[3]++; else if(n==0) { printf("投票结束!\n");break; } else printf("投票无效,请继续投票!"); } max=num[0]; for(i=1;i<4;i++) if(max<num[i]) max=num[i]; if(max==0) printf("还没有投票啊?!还能有结果^_^\n"); else { for(i=0;i<4;i++) if(max==num[i]) printf("班长为:%d\t票数为:%d\n",i+1,max); }

}

我用上面这种方法试了一下,也行,不过没有用函数方法做,呵呵,我想再引深一下,如果有并列的同学的话,我想在这几个并列的同学里面在进行投票,直到选出班长为止,请大家想想啊.

[此贴子已经被作者于2004-07-02 08:25:59编辑过]


学好编程就能编出自己的未来! 加油!自信!努力!奋斗!
2004-07-02 08:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-2930-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.827831 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved