关于c语言的问题,不知道该怎么解决。

怎样修改才能实现题目的要求,真难啊,这东西,谢谢大家

img


#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct person
{
    char name[20];
    int count;
}
leader[3] = { "Jordan",0,"Kobe",0,"James",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 (stremp(leader_name, leader[j].name) == 0)
                leader[j].count++;
    }
    for (i = 0; i < 3; i++)
        printf("%5s:%d\n", leader[i].name, leader[i].count);
    system ("pause");
}

基于Monster 组和GPT的调写:

修复的代码:

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

struct Candidate {
    char Name[20];
    int Num;
} Candidates[3] = {{"Jordan", 0}, {"Kobe", 0}, {"James", 0}};

int main() {
    int i, j;
    char vote_name[20];
    for (i = 0; i < 20; i++) {
        scanf("%s", vote_name);
        for (j = 0; j < 3; j++) {
            if (strcmp(vote_name, Candidates[j].Name) == 0) {
                Candidates[j].Num++;
                break;
            }
        }
    }
    for (i = 0; i < 3; i++) {
        printf("%s: %d\n", Candidates[i].Name, Candidates[i].Num);
    }
    system("pause");
    return 0;
}


stremp
->strcmp

修改如下,供参考:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct person
{
    char name[20];
    int count;
}leader[3] = { "Jordan",0,"Kobe",0,"James",0 };

int main()
{
    int i, j;
    char leader_name[20];
    for (i = 1; i <= 20; i++) //for (i = 1; i <= 10; i++)  修改
    {
        scanf("%s", leader_name);
        for (j = 0; j < 3; j++)
            if (strcmp(leader_name, leader[j].name) == 0) //if (stremp(leader_name, leader[j].name) == 0) 修改
            {                                             //修改
                leader[j].count++;
                break;                                    //修改
            }                                             //修改
    }
    for (i = 0; i < 3; i++)
        printf("%s: %d\n", leader[i].name, leader[i].count);  //修改
      //printf("%5s:%d\n", leader[i].name, leader[i].count); 
    return 0;  //system("pause");
}

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^