psm_00 2023-01-04 15:13 采纳率: 100%
浏览 43
已结题

关于#c语言#的问题,如何解决?

大家帮我看看这个怎么搞?

#include<string.h>
#define n 100
struct  student
{
int ID;
char name[10];
char project[20];
char sex[5];
float score;
float total;
};
void search()//查询 
{
    struct student stu[100];
    int number,flag,i;
    char s1[100];
    printf("****************************\n");
    printf("********1.按学号查询********\n");
    printf("********2.按姓名查询********\n");
    printf("********3.退出本菜单********\n");
    printf("****************************\n");
    while(1)
    {
        flag=0;
        printf("请输入序号:\n");
        scanf("%d",&number);
        switch(number)
        {
        case 1:
            printf("请输入学生学号:\n");
            scanf("%s",s1);
            for(i=0;i<n;i++)
            {
                if(strcmp(stu[i].ID,s1)==0)
                {
                    flag=1;
                    printf("学号\t姓名\t性别\t运动项目名称\t当前成绩\t总成绩\t");
                    printf("%3d\t%s\t%s\t%.2f\t\t%.2f\t\t%.2f\t %",stu[i].ID,stu[i].name,stu[i].sex,stu[i].project,stu[i].score,stu[i].total); 
                    
                }
            }break;
        case 2:
            printf("请输入学生姓名:\n");
            scanf("%s",s1);
            for(i=0;i<n;i++)
             {
                if(strcmp(stu[i].name,s1)==0)
                {
                    flag=1;
                    printf("学号\t姓名\t性别\t运动项目名称\t当前成绩\t总成绩\t");
                    printf("%3d\t%s\t%s\t%.2f\t\t%.2f\t\t%.2f\t %",stu[i].ID,stu[i].name,stu[i].sex,stu[i].project,stu[i].score,stu[i].total); 
                    
                }
             }break;
        case 3:return;
        default:printf("请输入1~3之间的数!\n");
        }
        if(flag == 0)
        printf("找不到该学生\n");
    }
}

img

  • 写回答

3条回答 默认 最新

  • qzjhjxj 2023-01-04 16:38
    关注

    修改如下,供参考:

    #include <stdio.h>
    #include <string.h>
    #define n 100
    struct  student
    {
        int ID;
        char name[10];
        char project[20];
        char sex[5];
        float score;
        float total;
    };
    
    struct student stu[n] = { 0,"aaa","bbb","nan",98.1,256.2 };  //stu[100];  修改 这个数组定义应移动到这
    
    void search()//查询 
    {
        int number, flag, i, id;  //修改
        char s1[16];
        printf("****************************\n");
        printf("********1.按学号查询********\n");
        printf("********2.按姓名查询********\n");
        printf("********3.退出本菜单********\n");
        printf("****************************\n");
        while (1)
        {
            flag = 0;
            printf("请输入序号:\n");
            scanf("%d", &number);
            switch (number)
            {
            case 1:
                printf("请输入学生学号:\n");
                scanf("%d", &id);   //scanf("%s", s1);   //修改 
                for (i = 0; i < n; i++)
                {
                    if (stu[i].ID == id) //if (strcmp(stu[i].ID, s1) == 0)   //修改 
                    {
                        flag = 1;
                        printf("学号\t姓名\t性别\t运动项目名称\t当前成绩\t总成绩\n"); //修改
                        printf("%3d\t%s\t%s\t%s\t\t%.2f\t\t%.2f\n", stu[i].ID, stu[i].name, stu[i].sex,     //修改 
                                                                stu[i].project, stu[i].score, stu[i].total);
                        break;  //修改 
                    }
                }
                if (flag == 0)   //修改
                    printf("找不到该学生\n"); //修改
                break;
            case 2:
                printf("请输入学生姓名:\n");
                scanf("%s", s1);
                for (i = 0; i < n; i++)
                {
                    if (strcmp(stu[i].name, s1) == 0)
                    {
                        flag = 1;
                        printf("学号\t姓名\t性别\t运动项目名称\t当前成绩\t总成绩\n");  //修改
                        printf("%3d\t%s\t%s\t%s\t\t%.2f\t\t%.2f\n", stu[i].ID, stu[i].name, stu[i].sex,        //修改
                                                                   stu[i].project, stu[i].score, stu[i].total);
                        break;   //修改 
                    }
                }
                if (flag == 0)  //修改
                    printf("找不到该学生\n"); //修改
                break;
            case 3:return;
            default:printf("请输入1~3之间的数!\n");
            }
        }
    }
    int main()
    {
        search();
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 1月12日
  • 已采纳回答 1月4日
  • 创建了问题 1月4日

悬赏问题

  • ¥15 关于#c语言#的问题:构成555单稳态触发器,采用LED指示灯延时时间,对延时时间进行测量并显示(如楼道声控延时灯)需要Proteus仿真图和C语言代码
  • ¥50 神舟笔记本,没有linux的驱动,装的Ubuntu系统,想把风扇速度调到最大
  • ¥15 workstation加载centos进入emergency模式,查看日志报警如图,怎样解决呢?
  • ¥50 如何用单纯形法寻优不能精准找不到给定的参数,并联机构误差识别,给定误差有7个?matlab
  • ¥15 workstation加载centos进入emergency模式,查看日志报警如图,没有XFS,怎样解决呢?
  • ¥15 应用商店如何检测在架应用内容是否违规?
  • ¥15 Ubuntu系统配置PX4
  • ¥50 nw.js调用activex
  • ¥15 数据库获取信息反馈出错,直接查询了ref字段并且还使用了User文档的_id而不是自己的
  • ¥15 将安全信息用到以下对象时发生以下错误:c:dumpstack.log.tmp 另一个程序正在使用此文件,因此无法访问