题解 | #记票统计#

记票统计

http://www.nowcoder.com/practice/3350d379a5d44054b219de7af6708894

思路

注意: 输出时,分号使用中文,最好直接赋值,虽然输出数字一致,但是字符串会和答案不匹配

  1. 创建存储名字和票数的结构体
  2. 获得候选人和投票的数据
  3. 循环比较候选人和投票人的名字是否一致,一致则将票数加1
  4. 同时减少1个投票人数,剩余的则为不匹配的人数量
  5. 按照题目要求输出结果

Answer

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

struct {

    char strName[200];
    int num;

} data[200], str2[200];

int main() {
    int num, cnt;

    scanf("%d", &num);

    for (int i = 0; i < num; i++) {
        scanf("%s", data[i].strName); //存候选人名字
    }
    scanf("%d", &cnt);
    for (int i = 0; i < cnt; i++) {
        scanf("%s", str2[i].strName); //存候选人名字
    }
    // 在投票中找和候选人相同的名字计数
    for (int i = 0; i < num; i++) {
        data[i].num = 0;
    }
    int len=cnt;
    for (int i = 0; i < num; i++) {
        for (int j = 0; j < cnt; j++) {
            if (strcmp(str2[j].strName, data[i].strName) == 0) {
                data[i].num++;
                len--;
            }
        }
    }

    for (int i = 0; i < num; i++) {
        //输出有效票数
        printf("%s : %d\n",data[i].strName,data[i].num);
    }
    printf("Invalid : %d\n",len);
    return 0;
}
全部评论

相关推荐

沉淀一会:**圣经 1.同学你面试评价不错,概率很大,请耐心等待;2.你的排名比较靠前,不要担心,耐心等待;3.问题不大,正在审批,不要着急签其他公司,等等我们!4.预计9月中下旬,安心过节;5.下周会有结果,请耐心等待下;6.可能国庆节前后,一有结果我马上通知你;7.预计10月中旬,再坚持一下;8.正在走流程,就这两天了;9.同学,结果我也不知道,你如果查到了也告诉我一声;10.同学你出线不明朗,建议签其他公司保底!11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务