A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lixianzhu0712 中级黑马   /  2015-7-30 20:18  /  546 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

形参的数组长度可以不写
关于数组名作为函数参数后,数组的长度信息丢失的问题
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)





2 个回复

倒序浏览
好笔记  多分享 多学习!
回复 使用道具 举报
已复制粘贴
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马