小阿giao ? 2021-05-14 23:08 采纳率: 100%
浏览 203
已结题

C语言投票系统!!!!!

用结构体写出一个投票系统,要求如下:

有三个人参加投票选举,分别为张三,李四,王二,投票者共有10人,不投票视为弃票,但是投票者并不一定要投给参加选举的人,可以投给其他人,最后输出张三,李四,王二获得的票数,和弃票的票数,和不参加选举的人的票数!(用C语言中的结构体)

  • 写回答

1条回答 默认 最新

  • benbenli 2021-05-15 01:55
    关注

    我之前提供了解答 https://ask.csdn.net/questions/7428442,你也不屑于点一下采纳。

     

    下面加了结构体。希望你能点一下采纳。

    
    #include <stdio.h>
    #include <string.h>
    
    typedef struct candidate 
    {
        char    name[256];
        int     vote;
        int     flag;
    } candidate;
    
    int main()
    {
        printf("投票系统。\n请输入你投票得候选人名字。\n你可以头指定候选人:张三, 李四, 王五。\n你也可以投别的名字。\n弃权请直接按回车键。\n");
        candidate c[10];
        int n = 3;
        int a = 0;
        int i, j;
        char buffer[256];
        
        strcpy(c[0].name, "张三");
        c[0].vote = 0;
        c[0].flag = 1;
        
        strcpy(c[1].name, "李四");
        c[1].vote = 0;
        c[1].flag = 1;
        
        strcpy(c[2].name, "王五");
        c[2].vote = 0;
        c[2].flag = 1;
        
        for (i = 0; i < 10; ++i) 
        {
            printf("第%d名投票人投票。请输入你投票给的候选人名字:", i + 1);
            fgets(buffer, 256, stdin);
            buffer[strlen(buffer) - 1] = '\0'; // remove linebreak
            
            if (buffer[0] == 0)
            {
                ++a;
            }
            else 
            {
                j = 0;
                while (j < n && strcmp(c[j].name, buffer) != 0)
                    ++j;
                if (j < n) 
                {
                    ++c[j].vote;
                }
                else
                {
                    strcpy(c[n].name, buffer);
                    c[n].vote = 1;
                    c[n].flag = 0;
                    ++n;
                }
            }
        }
        
        printf("投票结果:\n");
        for (i = 0; i < n; ++i)
        {
            if (c[i].flag)
                printf("候选人 %s 得票数:%d\n", c[i].name, c[i].vote);
            else
                printf("非候选人 %s 得票数:%d\n", c[i].name, c[i].vote);
        }
        
        printf("弃权票数:%d", a);
        return 0;
    }
                                                                                                                                                         
    // output
    投票系统。                                                                                                                                                                           
    请输入你投票得候选人名字。                                                                                                                                                           
    你可以头指定候选人:张三, 李四, 王五。                                                                                                                                               
    你也可以投别的名字。                                                                                                                                                                 
    弃权请直接按回车键。                                                                                                                                                                 
    第1名投票人投票。请输入你投票给的候选人名字:张三                                                                                                                                    
    第2名投票人投票。请输入你投票给的候选人名字:李四                                                                                                                                    
    第3名投票人投票。请输入你投票给的候选人名字:王五                                                                                                                                    
    第4名投票人投票。请输入你投票给的候选人名字:赵六                                                                                                                                    
    第5名投票人投票。请输入你投票给的候选人名字:                                                                                                                                        
    第6名投票人投票。请输入你投票给的候选人名字:张三                                                                                                                                    
    第7名投票人投票。请输入你投票给的候选人名字:张三                                                                                                                                    
    第8名投票人投票。请输入你投票给的候选人名字:                                                                                                                                        
    第9名投票人投票。请输入你投票给的候选人名字:李四                                                                                                                                    
    第10名投票人投票。请输入你投票给的候选人名字:刘七                                                                                                                                   
    投票结果:                                                                                                                                                                           
    候选人 张三 得票数:3                                                                                                                                                                
    候选人 李四 得票数:2                                                                                                                                                                
    候选人 王五 得票数:1                                                                                                                                                                
    非候选人 赵六 得票数:1                                                                                                                                                             
    非候选人 刘七 得票数:1                                                                                                                                                             
    弃权票数:2 
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 rt-thread线程切换的问题
  • ¥20 python忆阻器数字识别
  • ¥15 无法输出helloworld
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊