与醴同舟 2022-03-27 09:13 采纳率: 50%
浏览 55
已结题

统计投票程序,数据异常

问题:有三个候选人,每个选民只能投票选一人,要求统计编一个统计选票的程序,先后输入被选人的名字,最后输入个人得票结果

#include<string.h>                                                        //字符数组头文件
#include<stdio.h>

struct Person                                                            //声明结构体
{    char name[20];
    int count;        }
leader[3]{ "Li",0,"Zhang",0,"Sun",0 };                                    //定义结构体并初始化

int main()
{
    int i, j;                                                            //循环变量
    char leader_name[20];                                                //定义字符数组

    for(i=1;i<=10;i++)                                                    //十次循环,十张选票
    {
        scanf_s("%s", leader_name);                                        //输入名字
        for (j = 0; j < 3; j++)                                            //对比统计
            if (strcmp(leader_name, leader[j].name) == 0)
                leader[j].count++;
    }

    printf("\nResult:\n");                                                
    for (i = 0; i < 3; i++)
        printf("%5s:%d\n,leader[i].name,leader[i].count");                //分别输出结构体成员
    return 0;
}


输入Li + enter
运行结果

img

  • 写回答

1条回答 默认 最新

  • a5156520 2022-03-27 09:47
    关注

    我在Dev-C++用scanf代替scanf_s,发现可以正常运行,除了最后打印那里格式字符串稍微改了一下。

    
    #include<string.h>                                                        //字符数组头文件
    #include<stdio.h>
     
    struct Person                                                            //声明结构体
    {    char name[20];
        int count;        }
    leader[3]{ "Li",0,"Zhang",0,"Sun",0 };                                    //定义结构体并初始化
     
    int main()
    {
        int i, j;                                                            //循环变量
        char leader_name[20];                                                //定义字符数组
     
        for(i=1;i<=10;i++)                                                    //十次循环,十张选票
        {
            scanf("%s", leader_name);                                        //输入名字
            for (j = 0; j < 3; j++)                                            //对比统计
                if (strcmp(leader_name, leader[j].name) == 0)
                    leader[j].count++;
        }
     
        printf("\nResult:\n");                                                
        for (i = 0; i < 3; i++)
            printf("%5s:%d\n",leader[i].name,leader[i].count);                //分别输出结构体成员
        return 0;
    }
     
     
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月5日
  • 已采纳回答 3月28日
  • 修改了问题 3月27日
  • 创建了问题 3月27日

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测