鱼C论坛

 找回密码
 立即注册
查看: 934|回复: 1

[已解决]关于小甲鱼老师的通票系统作业

[复制链接]
发表于 2020-6-29 17:24:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
各位大神好,今天刚刚完成了小甲鱼的投票系统作业,试运行了一下,程序可以执行。但我想请教各位大神帮我看看代码有什么值得改进或者优化的地方。
我还有两个问题:1. 如果有任意两者的得票数一样,如何表示并列第一或者并列第二? 2. 怎么给得票数排序? 谢谢大家

代码如下

  1. #include <stdio.h>
  2. #include <string.h>

  3. #define NUM 10

  4. struct votes
  5. {
  6.         char *name;
  7.         int suffrage;
  8. };

  9. void main()
  10. {

  11.         struct votes poll[3]={{"kobe",0},{"james",0},{"wade",0}};
  12.         int i, most;
  13.         char player[10];
  14.         int cmp(int a, int b, int c);
  15.        
  16.         printf("welcome to the voting system!\nplease vote for 3 candidates: kobe, james and wade\n");
  17.         for(i=0;i<NUM;i++)
  18.         {
  19.                 printf("vote %d:", i+1);
  20.                 gets(player);
  21.                
  22.                 if(strcmp(player,"kobe")==0)
  23.                 {
  24.                         poll[0].suffrage++;
  25.                 }
  26.                 else if(strcmp(player,"james")==0)
  27.                 {
  28.                         poll[1].suffrage++;
  29.                 }
  30.                 else if(strcmp(player,"wade")==0)
  31.                 {
  32.                         poll[2].suffrage++;
  33.                 }
  34.         }
  35.        
  36.         printf("the voting result:\n\n");
  37.         printf("kobe has %d suffrages\n", poll[0].suffrage);
  38.         printf("james has %d suffrages\n", poll[1].suffrage);
  39.         printf("wade has %d suffrages\n", poll[2].suffrage);
  40.         printf("\n");

  41.         most=cmp(poll[0].suffrage, poll[1].suffrage, poll[2].suffrage);

  42.         if(poll[0].suffrage==most)
  43.         {
  44.                 printf("the winner is kobe!\n");
  45.         }
  46.         else if(poll[1].suffrage==most)
  47.         {
  48.                 printf("the winner is james!\n");
  49.         }
  50.         else
  51.         {
  52.                 printf("the winner is wade!\n");
  53.         }
  54.        
  55. }

  56. int cmp(int a, int b, int c)
  57. {
  58.         int w;
  59.         w=a>((b>c?b:c))?a:((b>c)?b:c);
  60.        
  61.         return w;
  62. }
复制代码

最佳答案
2020-6-30 11:13:58
排序的话,声明一个临时结构体变量,然后用冒泡排序比较票数进行结构体交换
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-30 11:13:58 | 显示全部楼层    本楼为最佳答案   
排序的话,声明一个临时结构体变量,然后用冒泡排序比较票数进行结构体交换
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-1 14:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表