鱼C论坛

 找回密码
 立即注册
查看: 10046|回复: 16

[技术交流] 小甲鱼要求用C语言写的投票系统,有不足的地方请大家指出。(附源码)

[复制链接]
发表于 2013-7-27 00:18:52 | 显示全部楼层 |阅读模式

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

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

x
QQ图片20130727001214.jpg

复制代码
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>

  4. struct toupiao
  5. {
  6.     char name[20];
  7.         int piaoshu;
  8.        
  9. }a = {"小甲鱼"}, b = {"苍井空"}, c = {"小泽玛利亚"},d = {"松岛枫"} ;

  10. void main()
  11. {
  12.         char shuru[20] ;
  13.         int i, max, a1=0, b1=0, c1=0, d1=0;
  14.         int x[4]={0,0,0,0};
  15.        
  16.         printf("\t\t\t欢迎进入优秀老师投票系统!\n\n\n");
  17.         printf("选举候选人:\n\t\t\t小甲鱼,苍井空,小泽玛利亚,松岛枫\n");
  18.     printf("********************************************************************************\n\n\n");
  19.         for ( i=1 ; i<11 ; i++ )
  20.         {
  21.                 printf("第%d位投票,请输入候选人的名字:",i);
  22.                 gets( shuru );
  23.                 if( strcmp(shuru,a.name)==0 )
  24.                 {
  25.                         x[0]++;
  26.                 }
  27.                 else if( strcmp(shuru,b.name)==0 )
  28.                 {
  29.                         x[1]++;
  30.                 }
  31.                 else if( strcmp(shuru,c.name )==0 )
  32.                 {
  33.                         x[2]++;
  34.                 }
  35.                 else if( strcmp(shuru,d.name )==0 )
  36.                 {
  37.                         x[3]++;
  38.                 }
  39.         }
  40.         max = x[0] ;
  41.         for( i=1 ; i<4 ; i++ )
  42.         {
  43.                 if(max < x[i])
  44.                 {
  45.                         max = x[i];
  46.                 }
  47.         }
  48.        
  49.         printf("********************************************************************************\n");
  50.         printf("\t各候选人的票数如下:\n\t小甲鱼: %d 票\n\t苍井空: %d 票\n\t小泽玛利亚: %d 票\n\t松岛枫: %d 票\n\n", x[0], x[1], x[2],x[3] );
  51.        
  52.        
  53.        
  54.        
  55.         if( max == x[0] )
  56.         {
  57.                 printf("本次投票的胜利者是: %s \n", a.name);
  58.         }
  59.     else if( max == x[1] )
  60.         {
  61.                 printf("本次投票的胜利者是: %s \n", b.name );
  62.         }
  63.         else if( max == x[2] )
  64.         {
  65.                 printf("本次投票的胜利者是: %s \n", c.name );
  66.         }
  67.         else if( max == x[3] )
  68.         {
  69.                 printf("本次投票的胜利者是: %s \n", d.name );
  70.         }
  71.        
  72.         system("pause");
  73. }

复制代码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-27 00:29:30 | 显示全部楼层
{:7_174:}你好像没利用好结构中的piaoshu。。只是摆设?
最后那个打印冠军可以用switch(max)。

{:7_153:}甲鱼与女<>优同列。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-27 00:33:51 | 显示全部楼层

刚刚学到结构~~还不怎么熟悉~~谢谢您的指点~~~ switch记住了~我还想把指针运用上去~~可是一弄指针就眼花了~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-7-27 00:46:56 | 显示全部楼层
本帖最后由 Potato丶 于 2013-7-27 00:48 编辑
游健健jee 发表于 2013-7-27 00:33
刚刚学到结构~~还不怎么熟悉~~谢谢您的指点~~~ switch记住了~我还想把指针运用上去~~可是一弄指 ...

结构中可以用字符指针来指向字符串。用字符数组的话也可以,但可能浪费空间或者不足。
还可以建立一个结构数组来分别储存。

{:7_174:}贴上我以前写的代码吧。觉得没什么价值就可以忽略了……
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <malloc.h>


  4. #define  NUMCAND 3

  5. void main()
  6. {
  7.         struct  candt
  8.         {
  9.                 char *name;
  10.                 int total;
  11.         }cand[NUMCAND]={ {"麻生希",0} , {"麻仓优",0} , {"神咲诗织",0} };

  12.          int i=1;
  13.          char *str=calloc(30,sizeof(char));

  14.          struct candt candmost;

  15.      printf("欢迎来到公民投票系统:\n\n");

  16.          printf("本次投票候选人有:麻生希   麻仓优  神咲诗织 \n");  //此处可以改一改。分别调用结构中的字符串。
  17.          printf("开始投票……\n\n");

  18.          while (i<=10)
  19.          {
  20.                  printf("您打算把第%d票投给:",i);
  21.                  scanf("%s",str);
  22.                  if (strcmp(cand[0].name,str)==0)
  23.                          cand[0].total++;
  24.                  else if (strcmp(str,cand[1].name)==0)
  25.                          cand[1].total++;
  26.                  else if (strcmp(str,cand[2].name)==0)
  27.                          cand[2].total++;
  28.                  i++;
  29.          };

  30.          for(i=0;i<NUMCAND;i++)
  31.          {
  32.                  printf("候选人%s得票数为:%d\n",cand[i].name,cand[i].total);
  33.          }
  34.       
  35.          
  36.      candmost.total=0;
  37.          for (i=0;i<NUMCAND;i++)
  38.          {
  39.                  if (candmost.total<cand[i].total)
  40.                          candmost=cand[i];

  41.          }

  42.          printf("本次投票冠军得主为%s,得票数为%d!\n",candmost.name,candmost.total);
  43.          free(str);
  44. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-27 00:58:20 | 显示全部楼层
Potato丶 发表于 2013-7-27 00:46
结构中可以用字符指针来指向字符串。用字符数组的话也可以,但可能浪费空间或者不足。
还可以建立一个结 ...

我在想~用了指针数据就比较好传递~再用不同函数实现里面的 比较和筛选功能~这样会不会高效点?~~我先琢磨下~ 不懂再咨询您
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-7-27 01:41:35 | 显示全部楼层
希望你能继续坚持下去!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-27 13:09:26 | 显示全部楼层
zer0 发表于 2013-7-27 01:41
希望你能继续坚持下去!!!

从一点都不懂到现在~~好不容易才找到兴趣~~肯定会坚持到底的~~谢谢支持
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-7-27 20:10:12 | 显示全部楼层
顶。。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-7-30 16:06:39 | 显示全部楼层
我自己研究了半天,还是没你这个方便啊~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-4 11:15:40 | 显示全部楼层
[抱抱] 好消息!庆贺美女店主上榜。十款性感内衣免费送!极致诱惑 http://t.cn/zQSRRgN 注明:新浪微博入口,邮资货款都不要啦 完全赠送!好东西大家分享,如有打扰可以无视…@结衣波性感生活秀 [打哈气]


                               
登录/注册后可看大图
来自 过客拉风的女孩 的新浪微博
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-4 11:39:24 | 显示全部楼层
程序还好啦,就是人丑了点:lol:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-4 12:19:22 | 显示全部楼层
天下无敌丑爸爸 发表于 2013-8-4 11:39
程序还好啦,就是人丑了点

小甲鱼会看到的~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-4 18:04:22 | 显示全部楼层
[花心] @游健健jee 亲们福音来了,喜欢仓老师的主妇还是小泽的女警诱惑,或是波多野结衣的秘书暴露装?这里应有尽有:http://t.cn/zQaQA6C 注明微博来的有惊喜… [太开心]


                               
登录/注册后可看大图
来自 当IH 的新浪微博
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2013-8-4 19:19:39 | 显示全部楼层
[打哈气] 亲们福音来了,喜欢仓老师的主妇还是小泽的女警诱惑,或是波多野结衣的秘书暴露装?这里应有尽有:http://t.cn/zQaQA6C 注明微博来的有惊喜… [委屈]


                               
登录/注册后可看大图
来自 小小七_58363 的新浪微博
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-4 19:44:25 | 显示全部楼层
支持 一下...........
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-12 20:28:36 | 显示全部楼层
请指导
#include<stdio.h>
#include<string.h>
struct person
{
        char name[20];
        int num;
}stu[3]={{"小甲鱼",0},{"李白",0},{"松松",0}};
int main()
{
printf("欢迎进入良好公民投票系统:<>\n候选人有:小甲鱼,李白,松松\n");
int i,j,max=0;
char str[20];
for(i=0;i<=6;i++)
{
        printf("第%d位投票,请写下支持的候选人名字:",i);
    scanf("%s",str);
    for(j=0;j<3;j++)
    {
            if(strcmp(str,stu[j].name)==0)
            {
                    stu[j].num++;
            }
            if(max<stu[j].num)
                 {
                         max=stu[j].num;
                 }
    }
}
for(i=0;i<3;i++)
{
        printf("%s 同学得票为:%d",stu[i].name,stu[i].num);
        putchar('\n');
}
printf("本次投票活动的胜利者是:\n");
for(j=0;j<3;j++)
{
        if(stu[j].num==max)
        {
                printf("%s\n",stu[j].name);
        }
}
return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-15 00:29:54 | 显示全部楼层
徐倩 发表于 2017-11-12 20:28
请指导
#include
#include

if(strcmp(str,stu[j].name)==0)
            {
                    stu[j].num++;
            }
            if(max<stu[j].num)
                 {
                         max=stu[j].num;
                 }
逻辑出现错误 ,第二个if语句应该是被第一个if语句包含在内的。
也就是if(strcmp(str,stu[j].name)==0)
                   {
                          stu[j].num++;
                          if(max<stu[j].num)
                                   max=stu[j].num;
                   }
这样就是正确答案了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 18:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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