1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 数据结构 以数组的形式存储数据(c语言 干货满满)

数据结构 以数组的形式存储数据(c语言 干货满满)

时间:2022-03-17 17:50:11

相关推荐

数据结构 以数组的形式存储数据(c语言 干货满满)

哈咯~~哈咯~ 今天又遇到两个有意思的题 我家来看看吧

以数组的形式存储数据(小明,21)(小花,17)(张三,20)(小红,16)(王二,18)

1.冒泡法排列 数据(小到大)

2.插入(李四,19)在小红后

3.删除张三

4.将 小花的年龄为19 并排序

大家先做一做 看看和我一不一样 (下一题在我主页也可以点这里直接去 下一题)

目录

分析

1.结构体

2.冒泡法

3.插入 (李四,19)

4.删除 张三 再用冒泡排列

代码实现

结果展现

分析

1.结构体

首先 这些数据两个部分组成了的(名字,年龄)

所有我的想法是创建应该结构体数据 里面又是int型 char型

2.冒泡法

因为它要 小到大 排序所有把这些结构体放到我们的数组里面

再用我们的冒泡法来 我找了一个视频来分析冒泡法的原理哦

3.插入 (李四,19)

ok 在小红后面插入李四 首先记住所有的插入都是先找插入目标

所有 我们来遍历这个数组 把小红出来在插入

4.删除 张三 再用冒泡排列

这个 删除的方法其实和插入一样都是先找 在操作

代码实现

#include <stdio.h>#include <stdlib.h>struct data //结构体数据 {char a1[20]; //代表 名字 int a;//代表 年龄 };int main(int argc, char *argv[]){struct data q[5]={"小明",21,"小花",17,"小红",16,"王二",18,"张三",20}; //结构体数组 int i,n; //循环变量 struct data x; //冒泡法里面的 "泡" for(i=0;i<4;i++){for(n=0;n<4-i;n++){if(q[n].a>q[n+1].a){x=q[n];q[n]=q[n+1];q[n+1]=x;}}}for(i=0;i<5;i++) //遍历 结构体数组 {printf("%s-->%d\t",q[i].a1,q[i].a);}printf("\n");///插入 struct data d={"李四",19}; //给 存储 李四 int t; // 获取数组下标的变量 for(i=0;i<4;i++) //遍历 {if(q[i].a==16) //因为这道题特殊年龄没有重复 所有直接用年龄判断简单点 {t=i; //获取数组下标break;}}struct data w[6];//插入数组的长度增加 所有在创建一个结构体数组 for(i=0;i<6;i++){w[i]=q[i]; //把q数组的数据给w数组 if(i==t+1) //当i=t就是 小红的数据 插在后面下标+1 w[i]=d; //d是李四的数据 else if(i>t+1) //李四后面 {w[i]=q[i-1]; //还是把q数组的值给 w数组 }}printf("插入\n");for(i=0;i<6;i++) //遍历 {printf("%s-->%d\t",w[i].a1,w[i].a);}printf("\n");//改///printf("改\n");for(i=0;i<6;i++) //遍历w数组 {if(w[i].a==17) //年龄为17 只有小花 {w[i].a=19;//改年龄 }printf("%s-->%d\t",w[i].a1,w[i].a);}printf("\n"); //排序/for(i=0;i<5;i++) //冒泡法 {for(n=0;n<5-i;n++){if(w[n].a>w[n+1].a){x=w[n];w[n]=w[n+1];w[n+1]=x;}}}printf("冒泡\n");for(i=0;i<6;i++){printf("%s-->%d\t",w[i].a1,w[i].a);} return 0;}

结果展现

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。