用姓名查找学生信息 不知道哪里错了

不知道哪里错了
希望有大家帮帮忙 大一刚学😥
不知道说什么了,说字数不够,好了,我只能乱说说凑字数了
大家帮帮忙谢谢!

img

要看你完整的代码,函数名都有波浪线,我怀疑你把函数写在另一个函数里面了,或者之前多了或者少了一个花括号。

修改如下,供参考:

img

以下内容部分参考ChatGPT模型:


根据提供的代码,可以看出问题出在输入姓名时没有使用fgets函数,而是使用了scanf函数。这会导致输入的姓名后面会带有一个换行符,导致查找不到对应学生信息。应该使用fgets函数来读入姓名,并在读取完姓名后去掉换行符。具体代码如下:

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

struct student{
    char name[50];
    int age;
    float score;
};

int main()
{
    struct student stu[5] = {
        {"Tom", 18, 90.0},
        {"Jerry", 19, 88.5},
        {"Lucy", 20, 95.0},
        {"Lily", 18, 91.5},
        {"Bob", 19, 89.0}
    };
    
    char searchName[50];
    printf("Please input the name you want to search: ");
    fgets(searchName, 50, stdin);
    searchName[strlen(searchName)-1] = '\0'; // 去掉换行符
    
    int i;
    for(i=0; i<5; i++){
        if(strcmp(searchName, stu[i].name) == 0){
            printf("Student %s, age %d, score %.2f\n", stu[i].name, stu[i].age, stu[i].score);
            break;
        }
    }
    
    if(i == 5){
        printf("No such student.\n");
    }
    
    return 0;
}

如果我的建议对您有帮助、请点击采纳、祝您生活愉快