当前位置: 首页 > news >正文

C基础day8

一、思维导图

二、课后习题

#include<myhead.h>
#define Max_Stu 100
//函数声明
//学生信息录入函数
void Enter_stu(int *Num_Stu,char Stu_name[][50],int Stu_score[]);
//查看学生信息
void Print_stu(int Num_Stu,char Stu_name[][50],int Stu_score[]);
//求出成绩最好的学生的成绩
void Best_Stu(int Num_Stu,char Stu_name[][50],int Stu_score[]);
//按姓名升序排序
void Sort_name(int Num_Stu,char Stu_name[][50],int Stu_score[]);
//按成绩对学生升序排序
void Sort_score(int Num_Stu,char Stu_name[][50],int Stu_score[]);/**********************主函数*************************/
int main(int argc, const char *argv[])
{printf("\t\t************学生管理系统*************\n");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");			//定义二维字符数组存放学生姓名//定义一维数组存放学生成绩char Stu_name[Max_Stu][50];int  Stu_score[Max_Stu];int Num_Stu= 0; 		//初始化录入学生人数//菜单int menu =0;do{printf("请输入选项>>>");scanf("%d",&menu);getchar();//多分支选择执行对应功能switch(menu){case 1://录入学生信息//调用信息录入函数Enter_stu(&Num_Stu,Stu_name,Stu_score);break;case 2://查看学生信息Print_stu(Num_Stu,Stu_name,Stu_score);break;case 3://求成绩最高的学生信息Best_Stu(Num_Stu,Stu_name,Stu_score);break;case 4://按姓名升序排序Sort_name(Num_Stu,Stu_name,Stu_score);break;case 5://按成绩对学生升序排序Sort_score(Num_Stu,Stu_name,Stu_score);case 0://退出break;default:printf("输入错误,请重新输入\n");break;}} while(menu !=0);return 0;
}//学生信息录入函数
void Enter_stu(int *Num_Stu,char Stu_name[][50],int Stu_score[])
{//提示输入学生个数,作为参数传给录入函数printf("请输入录入学生人数:");scanf("%d",Num_Stu);//循环输入学生姓名和成绩for(int i=0;i< *Num_Stu;i++){printf("请输入第%d个学生姓名:",i+1);scanf("%s",Stu_name[i]);printf("请输入第%d个学生成绩:",i+1);scanf("%d",&Stu_score[i]);}}//查看学生信息
void Print_stu(int Num_Stu,char Stu_name[][50],int Stu_score[])
{printf("学生信息如下:\n");//循环打印学生信息for(int i=0;i<Num_Stu;i++){printf("姓名:%s,分数:%d\n",Stu_name[i],Stu_score[i]);}
}//求出成绩最好的学生的成绩
void Best_Stu(int Num_Stu,char Stu_name[][50],int Stu_score[])
{int max_score = -1; //定义最大成绩容器int index =-1; //记录学生数组下标//循环比较学生成绩for(int i=0;i<Num_Stu;i++){if(Stu_score[i] > max_score){max_score = Stu_score[i];index = i;}}//判断是否有误if(index != -1)printf("成绩最高的学生:姓名:%s,分数:%d\n",Stu_name[index],Stu_score[index]);elseprintf("没有学生信息记录\n");}//按姓名升序排序
void Sort_name(int Num_Stu,char Stu_name[][50],int Stu_score[])
{//定义字符数组替换数组//定义分数替换容器char tempName[50];int tempScore;//循环比较并排序for(int i =0;i<Num_Stu-1;i++){for(int j =0;j<Num_Stu -i-1;j++){if(strcmp(Stu_name[j],Stu_name[j+1]) > 0){//替换姓名位置strcpy(tempName,Stu_name[j]);strcpy(Stu_name[j],Stu_name[j+1]);strcpy(Stu_name[j+1],tempName);//替换分数位置tempScore = Stu_score[j];Stu_score[j] = Stu_score[j+1];Stu_score[j+1] = tempScore;}}}//打印排序后结果printf("学生按姓名排序后的结果:\n");for(int i=0;i<Num_Stu;i++){printf("姓名:%s,分数:%d\n",Stu_name[i],Stu_score[i]);}
}//按成绩对学生升序排序
void Sort_score(int Num_Stu,char Stu_name[][50],int Stu_score[])
{//定义字符数组替换数组//定义分数替换容器char tempName[50];int tempScore;//循环比较并排序for(int i =0;i<Num_Stu-1;i++){for(int j =0;j<Num_Stu -i-1;j++){if(Stu_score[j] > Stu_score[j+1]){//替换姓名位置strcpy(tempName,Stu_name[j]);strcpy(Stu_name[j],Stu_name[j+1]);strcpy(Stu_name[j+1],tempName);//替换分数位置tempScore = Stu_score[j];Stu_score[j] = Stu_score[j+1];Stu_score[j+1] = tempScore;}}}//打印排序后结果printf("学生按分数排序后的结果:\n");for(int i=0;i<Num_Stu;i++){printf("姓名:%s,分数:%d\n",Stu_name[i],Stu_score[i]);}}

http://www.lryc.cn/news/396937.html

相关文章:

  • 【Spring成神之路】老兄,来一杯Spring AOP源码吗?
  • 轻松理解c++17的string_view
  • 【机器学习理论基础】回归模型定义和分类
  • 探讨4层代理和7层代理行为以及如何获取真实客户端IP
  • java算法day11
  • linux下安装cutecom串口助手;centos安装cutecom串口助手;rpm安装包安装cutecom串口助手
  • 2024年信息系统项目管理师2批次上午客观题参考答案及解析(1)
  • Xinstall揭秘:APP推广数据背后的真相,让你的营销更精准!
  • 科研绘图系列:R语言小提琴图(Violin Plot)
  • 【Vite】修改构建后的 index.html 文件名
  • 解决IDEA每次新建项目都需要重新配置maven的问题
  • 论文学习_Getafix: learning to fix bugs automatically
  • Xilinx FPGA:vivado关于真双端口的串口传输数据的实验
  • RedisTemplate 中序列化方式辨析
  • 数据结构与算法基础篇--二分查找
  • python xlsx 导出表格超链接
  • Data Guard高级玩法:failover备库后,通过闪回恢复DG备库
  • 【Unity2D 2022:NPC】制作任务系统
  • 【C++深度学习】多态(概念虚函数抽象类)
  • Ubuntu 安装CGAL
  • RK3568平台开发系列讲解(网络篇)netfilter框架
  • 检测音视频文件的声压
  • 计算机网络-HTTP常见面试题
  • LNMP搭建Discuz和Wordpress
  • java中的构造器
  • 机器学习筑基篇,​Ubuntu 24.04 快速安装 PyCharm IDE 工具,无需激活!
  • 从0开始基于transformer进行股价预测(pytorch版本)
  • 【多GPU训练方法】
  • 2024年PMP考试备考经验分享
  • MT3046 愤怒的象棚