php注册网站源码带数据库,专门做淘宝特价的网站,网站建设钱,沈阳网页建站模板1.1数组分配的空间
int a[10]{1,2,3,4,5,6,7,8,9,10};//分配空间 元素类型大小int4*元素个数1040byte
元素之间空间连续
数组名代表数组首元素地址#xff1b;a 取的是a[0]的地址#xff1b;a 是整个数组的地址
说明#xff1a; 数组首元素地址#xff1a; 0号元…1.1数组分配的空间
int a[10]{1,2,3,4,5,6,7,8,9,10};//分配空间 元素类型大小int4*元素个数1040byte
元素之间空间连续
数组名代表数组首元素地址a 取的是a[0]的地址a 是整个数组的地址
说明 数组首元素地址 0号元素的地址属性 数组名代表首元素地址 a1首字母的地址偏移一个元素 数组的地址 数组的地址属性表示整个数组的地址a 从地址编号上是一样的但偏移量是不一样的 a1数组的地址偏移整个数组长度地址
1.2数组初始化
说明数组初始化就是给数组中每个元素赋初值
规则 元素个数可以省略 a[]{10,20,30}; 初始化个数可以少于元素个数a[10]{10,20,30};//没初始化默认0 数组初始化必须在定义语句中完成
1.3访问下标
1.3.1 数组下标的使用 下标数组中的元素从0开始编号一直到数组元素个数-1 通过数组的下标来锁定数组元素从而达到操作具体元素的作用 格式数组名[下标号] //数组元素相应编号的内容 元素内容与地址 数组名[编号] //某号元素的内容 数组名[编号] //某号元素的地址
1.3.2数组名访问数组元素 数组名代表数组首元素地址 数组名i的形式表示数组i号元素的地址 *数组名i的形式 表示i号元素的内容 1.3.3通过指针的形式访问数组的元素 说明通过指针来操作数组中的元素首先要定义一个指针 指针指向对象类型 是元素的数据类型 数组的类型 int *p; 通过指针操作数组的话用 int (*p)[5];
//获取首元素地址
pa[0]; //(pa;)
//下一个元素的地址及内容
p
//指针可能会偏移需要指针重新指向首元素
1.4数组的应用
1.4.1数组元素累加
需求定义一个10个元素的数组每个元素是int类型用户输入十个整型数据求平均值。 分析1通过循环结构将数据输入数据
int sum0;
int val; printf(); for(i0;i10;i) { scanf(%d,a[i]) } for(i0;i10;i) { suma[i]; }
valsum/10.0;
printf(%d,val); 2对数组累加和 3求平均值打印
1.4.2数组排序--冒泡排序
可以将数组中的数据进行从大到小或者从小到大排序
排序原理
通过与后面各个位数据比较将最大/最小的值找出来。
若需要将数组从大到小进行排序通过两两比较的方式将最小的数据排到最后然后是次小.....
考虑循环的次数和遍历的数量。
在第一次循环时最小的数被排到了最后因此在下一次排序时不需要遍历到最后一位其他以此类推......因此遍历的数量为 数据个数-轮数
循环的最后一次应该是最大和次大的数进行比较因此所需要循环的循环次数为 数据个数-1
两层循环
fori1;i数据个数;i
{ forj0;j数据个数-轮数;j { //从小到大 ifa[j]a[j1] { 数据交换
/*这样排序不是将第一个数变成最大数而是想将最后一个数变成最小数*/ } }
}
1.4.3选择排序
相对于冒泡排序选择排序更为直接通过与后面各个数进行比较后将符合的放在最前面的位置
第一次循环将第一位数据换成我们需要的值....下一次循环的起点应该从下一个数据开始遍历
最后一次为最小数和次小数间比较因此循环次数为.....数据个数-1
如果我要找一个十个数据中的最大值定义一个a变量让他的值与数组其中一个元素相等
然后让他和数组中其他元素进行比较若遇到更大的数则得到改值继续往后比较最终打印a即可
int t[10]{1,5,7,4,6,5,4,4,5,3,}
int at[0]
for(i0;i10;i)
{ if(at[i1]) { at[i1]; }
}
printf(%d,a);
同样的我可以不定义a直接用a[0]来接收最大值
int t[10]{1,5,7,4,6,5,4,4,5,3,}
for(i0;i10;i)
{ if(t[0]t[i1]) { t[0]t[i1]; }
}
printf(%d,t[0]);
但是这样只是让第一个元素复制了其中最大的值因此需要中间变量使数组进行交换
int t[10]{1,5,7,4,6,5,4,4,5,3,};
int a;
for(int i0;i10;i)
{ if(t[0]t[i1]) { it[0]; t[0]t[i1]; t[i1]i }
}
printf(%d,t[0]);
这样第一个数就是最大数接着后几位按照这个方式循环比较
int t[10]{1,5,7,4,6,5,4,4,5,3,};
int a;
for(int j0;j10-1;j)
{ for(int i0;i10;i) { if(t[j]t[i1]) { at[j]; t[j]t[i1];//这样会把第一个值变为我们最需要的值 t[i1]a } } }