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

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

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

我之前提供了解答 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