这个怎么改啊,刚上大一不会了


#define _CRT_SECURE_NO_WARNIMGS
#include
#include
#include
#include
struct student
{
    char name[20];
    int score;
};
void input(int* n_, struct student stu[])
{
    printf("输入%d个学生的姓名和成绩\n", *n_);
    for (int i = 0;i < *n_;i++)
    {
        scanf_s("%s", stu[i].name);
        scanf_s("%d", &stu[i].score);
    }
}
void output(int* n_, struct student stu[])
{
    for (int i = 0;i < *n_;i++)
    {
        printf("%s %d", stu[i].name, stu[i].score);
    }
}
void sort(int* n_, struct student stu[])
{
    int i, j, n;
    char a[20], b[20];
    for (i = 0;i < *n_;i++)
    {
        for (j = i + 1;j < *n_;j++)
        {
            if (stu[i].score < stu[j].score)
            {
                n = stu[i].score;
                stu[i].score = stu[j].score;
                stu[j].score = n;
                strncpy_s(a, stu[i].name, 5);
                strncpy_s(b, stu[j].name, 5);
                strncpy_s(stu[j].name, a, 5);
                strncpy_s(stu[i].name, b, 5);
            }
        }
    }
}
void searchxingming(int* n_, struct student stu[])
{
    int k = 0;
    char m[1];
    printf("输入查询姓名:\n");
    scanf_s("%s", &m);
    for (int i = 0;i < *n_;i++)
    {
        if (stu[i].name == m)
        {
            printf("%d\n", stu[i].score);
            k = 1;
            break;
        }
    }
    if (k == 0)
    {
        printf("无");
    }
}
void searchchengji(int* n_, struct student stu[])
{
    int m, k = 0;
    printf("输入查询成绩:\n");
    scanf_s("%d", &m);
    for (int i = 0;i < *n_;i++)
    {
        if (stu[i].score == m)
        {
            printf("%d\n", stu[i].name);
            k = 1;
            break;
        }
    }
    if (k == 0)
    {
        printf("无");
    }
}
void start()
{
    printf("1.学生成绩的输出\n");
    printf("2.按成绩查询学生信息\n");
    printf("3.按姓名查询某学生信息并输出\n");
    printf("4.按照成绩由高到低排序并输出\n");
    printf("选择对应的功能");
}
int read()
{
    int j;
    scanf_s("%d", &j);
    return j;
}
int main()
{
    printf("输入学生的个数");
    int m;
    int* n_ = &m;
    scanf_s("%d", &m);
    struct student stu[100];
    input(n_, &stu[0]);
    while (1)
    {
        start();
        switch (read())
        {
        case 1:output(n_, &stu[0]);
            break;
        case 2:searchchengji(n_, &stu[0]);
            break;
        case 3:searchxingming(n_, &stu[0]);
            break;
        case 4:sort(n_, &stu[0]);break;
}
}return 0;
}

scanf_s("%s", stu[i].name);
改成
scanf_s("%s", stu[i].name,20);

#define _CRT_SECURE_NO_WARNIMGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<windows.h>
struct student
{
    char name[20];
    int score;
};
void input(int* n_, struct student stu[])
{
    printf("输入%d个学生的姓名和成绩\n", *n_);
    for (int i = 0;i < *n_;i++)
    {
        scanf_s("%s", stu[i].name,20);
        scanf_s("%d", &stu[i].score);
    }
}
void output(int* n_, struct student stu[])
{
    for (int i = 0;i < *n_;i++)
    {
        printf("%s %d\n", stu[i].name, stu[i].score);
    }
}
void sort(int* n_, struct student stu[])
{
    int i, j, n;
    char a[20], b[20];
    for (i = 0;i < *n_;i++)
    {
        for (j = i + 1;j < *n_;j++)
        {
            if (stu[i].score < stu[j].score)
            {
                n = stu[i].score;
                stu[i].score = stu[j].score;
                stu[j].score = n;
                strcpy(a, stu[i].name);
                strcpy(b, stu[j].name);
                strcpy(stu[j].name, a);
                strcpy(stu[i].name, b);
            }
        }
    }
}
void searchxingming(int* n_, struct student stu[])
{
    int k = 0;
    char m[20];
    printf("输入查询姓名:\n");
    scanf_s("%s", &m,20);
    for (int i = 0;i < *n_;i++)
    {
        if (strcmp(stu[i].name,m)==0)
        {
            printf("%d\n", stu[i].score);
            k = 1;
            break;
        }
    }
    if (k == 0)
    {
        printf("无");
    }
}
void searchchengji(int* n_, struct student stu[])
{
    int m, k = 0;
    printf("输入查询成绩:\n");
    scanf_s("%d", &m);
    for (int i = 0;i < *n_;i++)
    {
        if (stu[i].score == m)
        {
            printf("%s\n", stu[i].name);
            k = 1;
            break;
        }
    }
    if (k == 0)
    {
        printf("无");
    }
}
void start()
{
    printf("1.学生成绩的输出\n");
    printf("2.按成绩查询学生信息\n");
    printf("3.按姓名查询某学生信息并输出\n");
    printf("4.按照成绩由高到低排序并输出\n");
    printf("选择对应的功能\n");
}
int read()
{
    int j;
    scanf_s("%d", &j);
    return j;
}
int main()
{
    printf("输入学生的个数:");
    int m;
    int* n_ = &m;
    scanf_s("%d", &m);
    struct student stu[100];
    input(n_, &stu[0]);
    while (1)
    {
        start();
        switch (read())
        {
        case 1:output(n_, &stu[0]);
            break;
        case 2:searchchengji(n_, &stu[0]);
            break;
        case 3:searchxingming(n_, &stu[0]);
            break;
        case 4:sort(n_, &stu[0]);
            break;
        }
    }
    return 0;
}