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

C基础 8

一、思维导图

二、课后习题

#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("请输入录入学生人数:"); int NUM = *Num_Stu; scanf("%d",Num_Stu); getchar(); //循环输入学生姓名和成绩 for(int i=NUM;i < *Num_Stu+NUM;i++) { printf("请输入第%d个学生姓名:",i+1); scanf("%s",Stu_name[i]); printf("请输入第%d个学生成绩:",i+1); scanf("%d",&Stu_score[i]); putchar(10); } *Num_Stu += NUM; printf("录入成功\n\n"); } //查看学生信息 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]); } putchar(10); } //求出成绩最好的学生的成绩 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]); else printf("没有学生信息记录\n"); putchar(10); } //按姓名升序排序 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]); } putchar(10); } //按成绩对学生升序排序 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]); } putchar(10); }

http://www.jsqmd.com/news/894404/

相关文章:

  • 别急着导SQL!解决MySQL Error 1046前,先检查你的Workbench连接和默认Schema
  • SDSS-V项目:全球最大天文光谱巡天的技术创新与科学目标
  • 戴森球计划工厂蓝图库:3000+精选设计让你的太空工厂效率翻倍
  • Arm CMN-600/700系统地址映射掩码寄存器解析与配置
  • React Native基础
  • React AJAX:深入浅出
  • JDK 下载安装成功后无法打开.jar文件
  • 解决Animagine XL 3.1常见问题:提升生成效果的实用解决方案
  • 表示秩分析:优化句子嵌入模型性能与稳定性的关键
  • UE4.26特效优化实战:用Cascade编辑器排查并解决粒子系统性能瓶颈
  • 鸣潮自动化工具终极指南:5个技巧解放你的游戏时间
  • 基于向量数据库与混合检索的AI智能体持久记忆系统构建
  • 从零组装一台CNC小机床:手把手教你用树莓派4B+DM542+步进电机搭建核心控制系统
  • vben中通过自定义指令 实现边界拖拽
  • 2026中水回用零排放设备企业精选:印染废水中水回用设备厂家盘点 - 栗子测评
  • 用STM32F407的SDIO给TF卡做个“体检”:读写速度测试与文件系统底层探索(FatFS预备篇)
  • AIFS Single v2.0 vs v1.1:6大核心升级让AI天气预报准确率提升30%
  • Atom-7B-Chat-openmind硬件兼容性指南:从NPU到消费级显卡的完整部署方案
  • 别再只跑官方Demo了!用Nerfstudio处理你自己的照片/视频,从数据准备到3D模型导出一站式指南
  • macOS窗口管理终极指南:AutoRaise提升多任务效率50%的完整教程
  • 如何永久保存你的微信聊天记录?免费开源工具WeChatMsg完整指南
  • 告别SDIO和USB!在i.MX8平台上为你的IoT设备选型与部署PCIe WIFI模块(以88W8997为例)
  • 无曝气PTFE-MBR+RO回用技术哪家好?2026优质合作厂商推荐 - 栗子测评
  • 从手势识别到UI交互:用LeapMotion在Unity里打造你的隔空操作Demo
  • Unity URP/HDRP项目里,用ShaderGraph节点快速实现5个酷炫效果(附节点图)
  • 别再只会用php://filter了!深入理解PHP文件包含的三种利用姿势:伪协议、远程包含与日志注入
  • Git常用命令教程,非常细致,零基础也能听懂
  • 城市规划师必备:如何用ArcGIS插件高效评估区域风环境(迎风面密度保姆级教程)
  • 2026采购指南:饮用水PFAS去除设备厂家汇总推荐 - 栗子测评
  • Qwen2.5-0.5B-Instruct模型下载与配置:从HuggingFace到本地部署完整教程