怎么用C写两个人的身高排序啊 还有得输出名字 C语言六个人身高排序里边同时还得输出那个人相应的名字
4条回答 默认 最新
- a5156520 2023-06-09 08:52关注
定义结构存储每个人的信息,然后初始化赋值结构数组,或从输入获取数据存入结构数组, 排序后输出最高身高的姓名。
代码如下:
参考链接:结构体数组的赋值方法(常用的三种,包含字符串)_结构体数组赋值_编程图一乐的博客-CSDN博客 目录一、按照成员变量进行赋值(麻烦,好理解,字符串赋值需要strcpy)二、对数组整体进行赋值。(一次性需要把所有的都添加进去,不需要strcpy) (1) 在声明数组的时候,进行赋值 (2)对有规律的数据赋值,比如学生结构体的学号是有规律的。三、使用输入进行赋值(1)直接使用for,配合动态分配内存,这里按照数据库的数据类型,我将学号定义为char型,实际上定义为int 即可。(2)调用函数赋值,我们知道,结构体数组中,数组有多个元素,每个数组元素... https://blog.csdn.net/maxle/article/details/121304027#include <stdio.h> struct person{ // 存储每个人信息的结构 char name[20]; // 姓名 int height; // 身高 }; int main(void){ // https://blog.csdn.net/maxle/article/details/121304027 // 声明结构数组的同时,进行赋值 struct person ps[6]={ "张三", 170 , "李四", 172 , "王五", 171 , "赵六", 168 , "丁七", 167 , "胡八", 170 }; printf("排序后为:\n"); int i=-1; for( i=0;i<6;i++){ for(int j=i+1;j<6;j++){ if(ps[i].height>ps[j].height){ struct person temp=ps[i]; ps[i]=ps[j]; ps[j]=temp; } } printf("姓名:%s, 身高:%d\n",ps[i].name,ps[i].height); } // 考虑有身高相同的情况,输出最高身高的人的姓名 if(i!=-1){ int maxHeight=ps[i-1].height; // 存储最高身高的变量 printf("\n身高最高的为:\n"); while(i>0&&ps[i-1].height==maxHeight){ printf("%s\n",ps[i-1].name); i--; } } // int maxHeight=0; // 存储最高身高的变量 // int maxIndex=-1; // 最高身高的下标 // // // 遍历结构数组,寻找最高身高及其下标 // for(int i=0;i<6;i++){ // // if(maxHeight<ps[i].height){ // maxHeight=ps[i].height; // maxIndex=i; // } // // } // //// printf("maxIndex=%d\n",maxIndex); // // 打印结果 // if(maxIndex!=-1){ // printf("身高最高的是:%s,他的身高是:%d厘米。\n",ps[maxIndex].name,ps[maxIndex].height); // // } return 0; }
解决 2无用
悬赏问题
- ¥15 comparecluster没有办法kegg
- ¥15 远程访问linux主机超时
- ¥15 odoo17存货管理优势于中国国内该行业传统ERP或MES的详细解读和举例
- ¥15 CPU卡指令整合指令数据都在图片上
- ¥15 odoo17处理受托加工产品
- ¥15 如何用MATLAB编码图三的积分
- ¥15 圆孔衍射光强随孔径变化
- ¥15 MacBook pro m3max上用vscode运行c语言没有反应
- ¥15 ESP-PROG配置错误,ALL ONES
- ¥15 结构功能耦合指标计算