首页 > 其他分享 >作业7.10

作业7.10

时间:2024-07-10 20:54:48浏览次数:18  
标签:info 7.10 name int void 作业 score printf

练习:

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

char name[100][100]={""}; 
int score[100]={0};         //定义存储学生信息的数组
int num=0;                  //定义学生个数的变量

void info_in();
void info_out();
void info_max();
void info_sort();           //函数声明

int main(int argc, char const *argv[])
{
    int menu=0;
    while (1)
    {
        printf("————————————————————————————————————————————\n");
        printf("\t<<<<<<学生管理系统>>>>>>\n");
        printf("\t******1>>信息录入******\n");
        printf("\t******2>>查看信息******\n");
        printf("\t******3>>最好成绩******\n");
        printf("\t******4>>信息排序******\n");
        printf("\t******0>>退出系统******\n");
        printf("————————————————————————————————————————————\n");
        printf(">>> ");
        scanf("%d",&menu);
        getchar();
        switch (menu)
        {
        case 1:
            info_in();
            break;
        case 2:
            info_out();
            break;
        case 3:
            info_max();
            break;
        case 4:
            info_sort();
            break;
        case 0:
            exit(0);
        default:
            printf("错误输入\n");
        }
    }
    
    return 0;
}
void info_in()          //录入函数
{
    printf("输入学生个数:");
    scanf("%d",&num);
    for (int i = 0; i < num; i++)
    {
        printf("输入第%d个学生的姓名:",i+1);
        scanf("%s",name[i]);
        printf("输入第%d个学生的成绩:",i+1);
        scanf("%d",&score[i]);
    }
}

 

void info_out()         //查看函数
{
    printf("学生信息:\n");
    for (int i = 0; i < num; i++)
    {
        printf("%s\t",name[i]);
        printf("%d\n",score[i]);
    }
}

 

void info_max()         //最大函数
{
    int maxi=0;
    for (int i = 0; i < num; i++)
    {
        if(score[maxi]<score[i])
        {
            maxi=i;
        }
    }
    printf("学习最好的同学是:%s ,成绩:%d\n",name[maxi],score[maxi]);
}

 

void info_sort()        //排序函数
{
    int flag1=0,flag2=0;
    char temp1[100]={""};
    int temp2=0;
    printf("按姓名(0)/成绩(1)进行升序(0)/降序(1)排序:");
    scanf("%d %d",&flag1,&flag2);

    for(int i = 1; i < num; i++)
    {
        for (int j = 0; j < num-i; j++)
        {
            if(flag1==0)//按姓名
            {
                int a=strcmp(name[j],name[j+1]);
                if(flag2==0)//升序
                {
                    if (a>0)
                    {
                        strcpy(temp1,name[j]);
                        strcpy(name[j],name[j+1]);
                        strcpy(name[j+1],temp1);
                        temp2=score[j];
                        score[j]=score[j+1];
                        score[j+1]=temp2;
                    }
                }
                else if(flag2==1)//降序
                {
                    if (a<0)
                    {
                        strcpy(temp1,name[j]);
                        strcpy(name[j],name[j+1]);
                        strcpy(name[j+1],temp1);
                        temp2=score[j];
                        score[j]=score[j+1];
                        score[j+1]=temp2;
                    }
                }
                
            }
            else if(flag1==1)//按成绩
            {
                if(flag2==0)//升序
                {
                    if (score[j]>score[j+1])
                    {
                        strcpy(temp1,name[j]);
                        strcpy(name[j],name[j+1]);
                        strcpy(name[j+1],temp1);
                        temp2=score[j];
                        score[j]=score[j+1];
                        score[j+1]=temp2;
                    }
                }
                else if(flag2==1)//降序
                {
                    if (score[j]<score[j+1])
                    {
                        strcpy(temp1,name[j]);
                        strcpy(name[j],name[j+1]);
                        strcpy(name[j+1],temp1);
                        temp2=score[j];
                        score[j]=score[j+1];
                        score[j+1]=temp2;
                    }
                }
            }           
        }        
    }
    printf("排序后的结果为:\n");
    for (int i = 0; i < num; i++)
    {
        printf("%s\t",name[i]);
        printf("%d\n",score[i]);
    }
}

 按姓名升序排序

按姓名降序排序

按成绩升序排序

按成绩降序排序

思维导图:

标签:info,7.10,name,int,void,作业,score,printf
From: https://blog.csdn.net/VvvvvvV111h/article/details/140333291

相关文章

  • 闲话 24.7.10
    闲话啊,zzz真好玩啊!慢热型,战斗非重点,美术风格超赞。如果不排斥米家f2p游戏,推荐大家玩一玩。我是冲着妹妹去的未来会补一些杨表公式的证明。现在先咕!推歌:辰砂byLicisetal.feat洛天依AI增补:另类杨图对应杨表计数前置知识:杨表什么是另类?不是一般的杨图,就是另类的杨图......
  • SMU Summer 2024 Contest Round 3(7.10)
    寻找素数对思路:数的范围为10000,直接筛出所有范围内的质数,n2的枚举所有质数对和的情况#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong#definePIIpair<int,int>constintN=1e4+5;vector<int>pri;intidx,st[N];voidinit(){for(in......
  • 高空作业安全绳穿戴识别系统 YOLOv3
    高空作业安全绳穿戴识别系统利用作业现场已有的摄像头,高空作业安全绳穿戴识别系统通过计算机视觉+视频ai分析技术,对高空作业人员进行实时监测。当高空作业安全绳穿戴识别系统检测出相关人员在高空作业未佩戴安全绳时,系统立即预警提醒,并把报警记录储存在服务器数据库中,同步将信......
  • P1065 [NOIP2006 提高组] 作业调度方案【模拟】
    [NOIP2006提高组]作业调度方案题目描述我们现在要利用mmm台机器加工nn......
  • 大学生HTML期末大作业——HTML+CSS+JavaScript学校网站(成都大学)
    HTML+CSS+JS【学校网站】网页设计期末课程大作业web前端开发技术web课程设计网页规划与设计......
  • python作业题百度网盘,python大作业总结
    大家好,小编来为大家解答以下问题,python作业题百度网盘,python大作业总结,现在让我们一起来看看吧!大家好,本文将围绕python大作业代码及文档展开说明,python大作业代码100行是一个很多人都想弄明白的事情,想搞清楚python期末大作业题目需要先了解以下几个事情。大家好,给大家分......
  • JAVA每日作业day7.1-7.3小总结
    ok了家人们前几天学了一些知识,接下来一起看看吧一.APIJava的API(API:Application(应用)Programming(程序) Interface(接口))JavaAPI就是JDK中提供给我们使用的类,这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何......
  • 不锈钢酸退作业区冷线氮氧分析仪采样系统优化改造
    不锈钢酸退作业区冷线氮氧分析仪采样系统优化改造一、项目提出前状况:(一)不锈钢酸退作业区酸洗线脱氮系统使用的废气监测仪器氮氧分析仪属于环保设备,数据检测的准确性直接影响环保指标,因此一旦数据检测有误,势必会引起环保事件。脱氮系统是将酸洗过程中产生的酸雾通过燃烧后,......
  • Python 作业题1 (猜数字)
    题目你要根据线索猜出一个三位数。游戏会根据你的猜测给出以下提示之一:如果你猜对一位数字但数字位置不对,则会提示“Pico”;如果你同时猜对了一位数字及其位置,则会提示“Fermi”;如果你猜测的数字及其位置都不对,则会提示“Bagels”。你有10次猜数字机会花十分钟,来实现一下吧......
  • 软件工程实训大作业报告(旅游信息管理系统|小组合作完成)
    目  录一、项目计划1.1定义1.2目标1.3计划二、需求分析2.1初定功能需求模块2.2基本流程2.3用例图2.4用例说明2.5性能需求规定2.6运行环境规定三、概要设计3.1功能模块划分3.2用例图3.3用例说明(新增用例)3.4业务流程3.5系统出错处理设计......