20240710作业

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

//菜单初始化函数
void print_menu()
{
    printf("\t\t=====1.信息录入=====\n");
    printf("\t\t=====2.查看学生信息=====\n");
    printf("\t\t=====3.最好的学生=====\n");
    printf("\t\t=====4.按姓名升序=====\n");
    printf("\t\t=====5.按成绩升序=====\n");
    printf("\t\t=====0.退出=====\n");
}


//录入学生成绩函数
void luru(char student[][20],int n,int score[])
{
    for(int i=0;i<n;i++)
    {
        printf("请输入第%d个学生的姓名:",i+1);
        scanf("%s",student[i]);
        printf("请输入第%d个学生的成绩:",i+1);
        scanf("%d",&score[i]);
    }
}

//查看学生成绩函数
void see(char student[][20],int n,int score[])
{
    for(int i=0;i<n;i++)
    {
        printf("第%d个学生的姓名为:%s,成绩为:%d\n",i+1,student[i],score[i]);
    }
}

//查看成绩最好的学生
void best(char student[][20],int n,int score[])
{
    int max=score[0];
    int maxn=0;
    for(int i=1;i<n;i++)
    {
        if(score[i]>max)
        {
            max=score[i];
            maxn=i;
        }
    }
    printf("成绩最好的学生为:%s,成绩为:%d\n",student[maxn],score[maxn]);
}

//按姓名升序排序函数
void xmsx(char student[][20],int n,int score[])
{
    printf("按姓名升序排后:\n");
    char temp[20]="";
    int sc=0;
    for(int i=1;i<n;i++)
    {
        for(int j=0;j<n-i;j++)
        {
            if(strcmp(student[j],student[j+1])>0)
            {
                strcpy(temp,student[j]);    //姓名下标交换
                sc=score[j];                            // 成绩下标交换
                strcpy(student[j],student[j+1]);
                score[j]=score[j+1];
                strcpy(student[j+1],temp);
                score[j+1]=sc;
            }
        }
    }
 for(int i=0;i<n;i++)     //输出排序后学生表信息
    {
        printf("第%d个学生的姓名为:%s,成绩为:%d\n",i+1,student[i],score[i]);
    }
}


//按成绩升序排序
void cjsx(char student[][20],int n,int score[])
{
    printf("按成绩升序排后:\n");
     char temp[20]="";
    int sc=0;
    for(int i=1;i<n;i++)
    {
        for(int j=0;j<n-i;j++)
        {
            if(score[j]>score[j+1])
            {
                str

cpy(temp,student[j]);
                sc=score[j];
                strcpy(student[j],student[j+1]);
                score[j]=score[j+1];
                strcpy(student[j+1],temp);
                score[j+1]=sc;
            }
        }
    }
 for(int i=0;i<n;i++)          //输出排序后学生表信息
    {
        printf("第%d个学生的姓名为:%s,成绩为:%d\n",i+1,student[i],score[i]);
    }
}

int main()
{
    int menu=0;
    char student[100][20]={""};
    int score[100]={0};
    int n=0;
     while(1){
        print_menu();
        printf("请输入:");
        scanf("%d",&menu);
        getchar();

        switch(menu){
            case 1:
            {
                printf("请输入学生个数: ");
                scanf("%d",&n);
                luru(student,n,score);
            }
            break;
            case 2:
            {
                see(student,n,score);
            }
            break;
            case 3:
            {
                best(student,n,score);
            }
            break;
            case 4:
            {
                xmsx(student,n,score);
            }
            break;
            case 5:
            {
                cjsx(student,n,score);
            }
            break;
            case 0: goto END;  //结束
        }

}
END:
return 0;
}

效果图:

思维导图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值