news 2026/5/27 4:16:26

C基础 8

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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); }

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/27 4:07:04

shmem共享内存通信:为什么比PCIe快10倍?

前言 多卡NPU在同一个服务器上&#xff0c;卡之间怎么通信&#xff1f;最直观的方式是通过PCIe——数据从卡A搬到内存&#xff0c;再从内存搬到卡B。PCIe 4.0 x16带宽32GB/s&#xff0c;看着不低&#xff0c;但双向往返一次要搬两次数据&#xff0c;实际有效带宽只有16GB/s。 …

作者头像 李华
网站建设 2026/5/27 4:02:37

戴森球计划工厂蓝图库:3000+精选设计让你的太空工厂效率翻倍

戴森球计划工厂蓝图库&#xff1a;3000精选设计让你的太空工厂效率翻倍 【免费下载链接】FactoryBluePrints 游戏戴森球计划的**工厂**蓝图仓库 项目地址: https://gitcode.com/GitHub_Trending/fa/FactoryBluePrints 还在为《戴森球计划》中复杂的工厂布局而头疼吗&…

作者头像 李华
网站建设 2026/5/27 4:01:58

解决Animagine XL 3.1常见问题:提升生成效果的实用解决方案

解决Animagine XL 3.1常见问题&#xff1a;提升生成效果的实用解决方案 【免费下载链接】animagine-xl-3.1 项目地址: https://ai.gitcode.com/hf_mirrors/cagliostrolab/animagine-xl-3.1 Animagine XL 3.1是一款强大的AI绘图工具&#xff0c;能帮助用户轻松创建高质量…

作者头像 李华