形参的数组长度可以不写
关于数组名作为函数参数后,数组的长度信息丢失的问题
C语言规定 不管什么类型的数据,数据的内存地址在内存中占有8个字节
Int len =sizeof(a)//a占用的总的字节数
注意 在函数外面使用这个语句时可以得到数组占用的内存大小
但是当这句话封装在一个函数 数组的名是通过形参传进来时 这个现实的大小就变了
冒泡排序思想
大数下沉 小数上浮
1,比较相邻的两个元素,如果第一个比第二个大 那么交换他们
。。。。
Int[10]={1,23,4,53,545,3,765,674,43,22}
void maoPao(int arr,int len){
//双重循环
int temp;
for(int i=0.i<len-1;i++) //外层循环控制循环多少趟 按照冒泡的思想 有一个数已经下沉。
for(int j=0;j<len-1-i;j++)-i让每一次比较的元素减少,-1:避免角标越界
if(arr[j]>arr[j+1]) // 这里比较是小于号 显示的从小到大排序 当改成小于时就变成 从大到小
// 里层循环控制循环多少次
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
选择排序
思路
1定义数组
2.假定最小值
3
void selectsort(Int arr(),int len)
{
int temp;
for(int i=0;i<len-1;i++)
for( int j=i+1;j<len;j++)
if(arr[i])>arr[j]{
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
二维数组
数组的首地址
数组的首地址==数组名==&a[0]==&[0][0]
二维数组的行列问题
二维数组占用的总字节数
·1总字节数=m每行占用的字节数之和
·2总字节数=元素个数*元素类型
=行*列*sizeof(数组类型)
·3总字节数=sizeof(数组名)
通过数组名计算数组占用的字节数
每一行的字节如何计算
int a[2][2]
a[0]-->1 2
a[1]--> 3 4
len=sizeof(a[1])
每一行有多少列
行数=行的总字节数/每个元素占用的字节(数据类型)
length=sizeof(a[0])/sizeof(int)
行数 =总字节数/每一行占用的字节数
=size(a1)/sizeof(a1[0]);
列数 =每一行占用的字节数/每一个元素的类型
=sizeof(a1[0])/sizeof(int)
练习 求多人多门课平均成绩\ba
int sum ;
int total;
for(int i=0;i<3;i++){
for(int j=0;j<5;j++){
sum+=a[j][i];}
sum=0;
print("第%d门课的平均成绩:%。2f\n",i+1,sum/5.0f)
|
|