zaiecat4023 2021-06-30 22:12 采纳率: 75%
浏览 16
已采纳

实际效果如此打击人...我想要个列表,不影响别的的

emmm...我想要这种效果,可是。。。/泄气(_ _)

确成了这样,还有原来能够运行的,也出问题了/难受...( _ _)ノ|

img

想象中的↑↑↑,现实给我的↓↓↓ 虽然知道是我不懂,但是还是很打击人

img

代码是这个

void chazhaoren()  //查找人
{
    int i;
    char m[20];
    printf("请输入您想查询的学生姓名:");
    scanf("%s",m); 
    printf("成绩1:%.2f\n成绩2:%.2f\n成绩3:%.2f\n",score1(m),score2(m),score3(m));

}

img

帮帮孩子吧,呜呜呜~

#include <stdio.h>
#include <string.h>
#include <windows.h>
int A;
int now_no=0; 

struct school  //学生信息
{
    int num;
    char name[50],sex[5];    //使用char数组
    float score1,score2,score3;
    int no;
} s[100]={{1,"bingqian","女",92,95,90},{2,"zhouzhou","女",94,92,93},{3,"qinying","女",95,98,89}};

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");
}

void chazhaoren()  //查找人
{
    int i;
    char m[20];
    printf("请输入您想查询的学生姓名:");
    scanf("%s",m); 
    printf("成绩1:%.2f\n成绩2:%.2f\n成绩3:%.2f\n",score1(m),score2(m),score3(m));

}

int num(char a[20])   //学号
{
    int i;
    for(i=0;i<10;i++)
        if(strcmp(s[i].name,a)==0)
            return s[i].num;
}

float score1(char a[20])   //成绩1 
{
    int i;
    for(i=0;i<10;i++)
        if(strcmp(s[i].name,a)==0)
            return s[i].score1;
}

float score2(char a[20])   //成绩2
{
    int i;
    for(i=0;i<10;i++)
        if(strcmp(s[i].name,a)==0)
            return s[i].score2;
}

float score3(char a[20])  //成绩3
{
    int i;
    for(i=0;i<10;i++)
        if(strcmp(s[i].name,a)==0)
            return s[i].score3;
}

int sex(char a[20])   //性别
{
    int i;
    for(i=0;i<10;i++)
        if(strcmp(s[i].name,a)==0)
            return i;
}

void display() /*显示数据函数*/ 
{ 
    int i;
    char m[20],as;
    do
    {
        printf("\t\t\t学生信息列表\n"); 
        printf("\t学号\t姓名\t性别\t成绩1\t成绩2\t成绩3\n");
        for(i=0;i<now_no&&s[i].name[0];i++) 
            printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",num(m),m,s[sex(m)].sex,score1(m),score2(m),score3(m)); 
    }
    while(!as);
}

void chaxinxi()
{
    char m[20];
    printf("请输入想要查询的学生姓名:");
    scanf("%s",m);
    printf("学号:%d\n姓名:%s\n性别:%s\n成绩1:%.2f\n成绩2:%.2f\n成绩3:%.2f\n",num(m),m,s[sex(m)].sex,score1(m),score2(m),score3(m));
}

void del()  /*删除数据函数*/ 
{ 
    int k,i; 
    printf("输入要删除学生的编号:"); 
    scanf("%d",&k); 
    for(i=0; i<now_no; i++) 
    { 
        if(s[i].no==k) 
        { 
            if(i==now_no)  now_no-=1; 
            else 
            { 
                s[i]=s[now_no-1]; 
                now_no-=1; 
            }  
            break; 
        } 
    }
} 

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("请输入您要执行的项目:");
}

int main()     //主函数
{
    int x,i;
    for(i=0;i<10;i++)
    {
        menu();
        scanf("%d",&x);
        switch(x)
        {
            case 1:input();break;
            case 2:display();break;
            case 3:del();break;
            case 4:chazhaoren();break;
            case 5:exit(0);
            default:printf("无此数字!\n");
        }
    }
}
  • 写回答

1条回答 默认 最新

  • qzjhjxj 2021-07-01 00:19
    关注

    修改如下,供参考:

    #include <stdio.h>
    #include<conio.h>
    #include <string.h>
    #include <windows.h>
    int A;
    int now_no=3;
    struct school  //学生信息
    {
        int   num;
        char  name[50],sex[5];    //使用char数组
        float score1,score2,score3;
        int   no;
    } s[100]={{1,"bingqian","女",92,95,90},{2,"zhouzhou","女",94,92,93},{3,"qinying","女",95,98,89}};
    
    void input()  /*原始数据录入模块*/ 
    {
        int m,i;
        printf("请输入您要录入的人数:");
        scanf("%d",&m);
        for(i=now_no;i < now_no+m;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");
        now_no += m;
        getch();
    }
    
    void chazhaoren()  //查找人
    {
        int i;
        char m[20];
        printf("请输入您想查询的学生姓名:");
        scanf("%s",m);
        for(i=0;i < now_no;i++)
        {
            if(strcmp(s[i].name,m)==0) break;
        }
        if(i >= now_no) printf("无此记录!\n");
        else{
                printf("\n学号\t姓名\t\t性别\t成绩1\t成绩2\t成绩3\n");
                printf("%d\t%-10s\t%-4s\t%.2f\t%.2f\t%.2f\n",
                   s[i].num,s[i].name,s[i].sex,s[i].score1,s[i].score2,s[i].score3);
        }
        getch();
    }
    
    void display() /*显示数据函数*/
    {
        int i;
        printf("\n\t\t\t学生信息列表\n\n");
        printf("学号\t姓名\t\t性别\t成绩1\t成绩2\t成绩3\n");
        for(i=0;i<now_no;i++)
            printf("%d\t%-10s\t%-4s\t%.2f\t%.2f\t%.2f\n",
                   s[i].num,s[i].name,s[i].sex,s[i].score1,s[i].score2,s[i].score3);
        printf("\n\n");
        getch();
    }
    void del()  /*删除数据函数*/ 
    { 
        int k,i,j,flg=0;
        printf("输入要删除学生的编号:");
        scanf("%d",&k);
        for(i=0; i < now_no; i++)
        {
            if(s[i].num == k)
            {
                if(i==now_no) now_no--;
                else
                {
                    for(j=i;j < now_no-1;j++)
                        s[j] = s[j+1];
                    now_no--;
                }
                flg = 1;
                break;
            }
        }
        if(flg == 0) printf("无此记录!\n");
        else         printf("删除成功!\n");
        getch();
    } 
    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("请输入您要执行的项目:");
    }
    int main()     //主函数
    {
        int x,i;
        while(1) //for(i=0;i<10;i++)
        {
            menu();
            scanf("%d",&x);
            switch(x)
            {
                case 1:input();     break;
                case 2:display();   break;
                case 3:del();       break;
                case 4:chazhaoren();break;
                case 5:exit(0);
                default:printf("无此数字!\n");
            }
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?