zaiecat4023 2021-06-30 16:32 采纳率: 75%
浏览 235
已采纳

警告C4047:“正在初始化”:“char”与“char[3]”的间接寻址级别不同。不知道,我。。。

第一次自己做的,有地方运行不起来,不知道是因为什么,呜呜呜~

#include <stdio.h>
#include <string.h>
#include <windows.h>
int A;
struct school  //学生信息
    {
        int num;
        char name[50];
        char sex;
        float score1,score2,score3;
} s[100]={{1,"a","女",92,95,90},{2,"b","女",94,92,93},{3,"c","女",95,98,89}};

void menu()   //菜单函数
{
    printf("--------------欢迎进入学生信息管理系统--------------\n\n\n");
    printf("1.录入学生信息\n");
    printf("2.查询学生信息\n");
    printf("3.删学生信息\n");
    printf("4.查询学生成绩\n");
    printf("5.退出\n\n\n");
    printf("----------------------------------------------------\n\n\n");
    printf("请输入您要执行的项目:");
}
void input()   //录入函数
{
    int m,i;
    printf("请输入您要录入的人数:");
    scanf("%d",&m);
    for(i=1;i<m+1;i++)
    {
    printf("请输入您要录入的学号:");
    scanf("%d",&s[i].num);
    printf("请输入您要录入的姓名:");
    scanf("%s",s[i].name);
    printf("请输入您要录入的性别:");
    scanf("%s",s[i].sex);
    printf("请输入您要录入的成绩1:");
    scanf("%f",&s[i].score1); 
    printf("请输入您要录入的成绩2:");
    scanf("%f",&s[i].score2); 
    printf("请输入您要录入的成绩3:");
    scanf("%f",&s[i].score3); 
    }
    printf("创建完毕!\n");
}
int score1(char a[20])   //查询成绩函数
{
    int i;  
    for(i=0;i<10;i++)
        if(strcmp(s[i].name,a)==0)
            return s[i].score1;
}
int score2(char a[20])  
{
    int i;  
    for(i=0;i<10;i++)
        if(strcmp(s[i].name,a)==0)
            return s[i].score2;
}
int score3(char a[20])  
{
    int i;  
    for(i=0;i<10;i++)
        if(strcmp(s[i].name,a)==0)
            return s[i].score3;
}
void chazhaoren()  //查找人函数
{
    char m[20];
    printf("请输入您想查询的学生姓名:");
    scanf("%s",m);
    printf("成绩1:%f\n成绩2:%f\n成绩3:%f\n",score1(m),score2(m),score3(m));
}
int sex(char a[20])
{
    int i;
    for(i=0;i<10;i++)
        if(strcmp(s[i].name,a)==0)
            return i; 
}
int num(char a[20])
{
    int i;
    for(i=0;i<10;i++)
        if(strcmp(s[i].name,a)==0)
            return s[i].num;
}
void chaxinxi()
{
    char m[20];
    printf("请输入想要查询的学生姓名:");
    scanf("%s",m);
    printf("学号:%d\n姓名:%s\n性别:%s\n成绩1:%f\n成绩2:%f\n成绩3:%f\n",num(m),m,s[sex(m)].sex,score1(m),score2(m),score3(m));
}
void main()     //主函数
{
    int x,i;
    for(i=0;i<10;i++)
    {
    menu();
    scanf("%d",&x);
    switch(x)
    {
    case 1:input();break;
    case 2:chaxinxi();break;
    case 3:
    case 4:chazhaoren();break;
    case 5:exit(0);break;
    default:printf("无此数字!\n");
    }
    }
    
}
  • 写回答

3条回答 默认 最新

  • 正在学C++ 2021-06-30 16:44
    关注
    #include <stdio.h>
    #include <string.h>
    #include <windows.h>
    int A;
    struct school  //学生信息
    {
        int num;
        char name[50];
        char sex[5];        /////////////////////////////使用char数组
        float score1,score2,score3;
    } s[100]={{1,"a","女",92,95,90},{2,"b","女",94,92,93},{3,"c","女",95,98,89}};
    void menu()   //菜单函数
    {
        printf("--------------欢迎进入学生信息管理系统--------------\n\n\n");
        printf("1.录入学生信息\n");
        printf("2.查询学生信息\n");
        printf("3.删学生信息\n");
        printf("4.查询学生成绩\n");
        printf("5.退出\n\n\n");
        printf("----------------------------------------------------\n\n\n");
        printf("请输入您要执行的项目:");
    }
    void input()   //录入函数
    {
        int m,i;
        printf("请输入您要录入的人数:");
        scanf("%d",&m);
        for(i=1;i<m+1;i++)
        {
            printf("请输入您要录入的学号:");
            scanf("%d",&s[i].num);
            printf("请输入您要录入的姓名:");
            scanf("%s",s[i].name);
            printf("请输入您要录入的性别:");
            scanf("%s",s[i].sex);
            printf("请输入您要录入的成绩1:");
            scanf("%f",&s[i].score1);
            printf("请输入您要录入的成绩2:");
            scanf("%f",&s[i].score2);
            printf("请输入您要录入的成绩3:");
            scanf("%f",&s[i].score3);
        }
        printf("创建完毕!\n");
    }
    float score1(char a[20])   //查询成绩函数         ////////////////////函数类型为float
    {
        int i;
        for(i=0;i<10;i++)
            if(strcmp(s[i].name,a)==0)
                return s[i].score1;
    }
    float score2(char a[20])// //////////////////函数类型为float
    {
        int i;
        for(i=0;i<10;i++)
            if(strcmp(s[i].name,a)==0)
                return s[i].score2;
    }
    float score3(char a[20])// //////////////////函数类型为float
    {
        int i;
        for(i=0;i<10;i++)
            if(strcmp(s[i].name,a)==0)
                return s[i].score3;
    }
    void chazhaoren()  //查找人函数
    {
        char m[20];
        printf("请输入您想查询的学生姓名:");
        scanf("%s",m);
        printf("成绩1:%f\n成绩2:%f\n成绩3:%f\n",score1(m),score2(m),score3(m));
    }
    int sex(char a[20])
    {
        int i;
        for(i=0;i<10;i++)
            if(strcmp(s[i].name,a)==0)
                return i;
    }
    int num(char a[20])
    {
        int i;
        for(i=0;i<10;i++)
            if(strcmp(s[i].name,a)==0)
                return s[i].num;
    }
    void chaxinxi()
    {
        char m[20];
        printf("请输入想要查询的学生姓名:");
        scanf("%s",m);
        printf("学号:%d\n姓名:%s\n性别:%s\n成绩1:%f\n成绩2:%f\n成绩3:%f\n",num(m),m,s[sex(m)].sex,score1(m),score2(m),score3(m));
    }
    int main()     //主函数
    {
        int x,i;
        for(i=0;i<10;i++)
        {
            menu();
            scanf("%d",&x);
            switch(x)
            {
                case 1:input();break;
                case 2:chaxinxi();break;
                case 3:
                case 4:chazhaoren();break;
                case 5:exit(0);
                default:printf("无此数字!\n");
            }
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题
  • ¥20 RL+GNN解决人员排班问题时梯度消失
  • ¥60 要数控稳压电源测试数据
  • ¥15 能帮我写下这个编程吗
  • ¥15 ikuai客户端l2tp协议链接报终止15信号和无法将p.p.p6转换为我的l2tp线路