黑马程序员—C学习笔记—数组的求最大值和反转
2015-03-25 16:33
267 查看
———–Java培训、Android培训、IOS培训、.Net培训、期待与您交流!————
本节是个人学习过程中的笔记,供初学者一起学习,大神勿喷。
数组的求最大值和反转,其中一些细节问题,代码注释都有提到,代码如下:
程序运行结果如下(编辑器突然不能上传图片,那么copy出来了):
本节是个人学习过程中的笔记,供初学者一起学习,大神勿喷。
数组的求最大值和反转,其中一些细节问题,代码注释都有提到,代码如下:
#include <stdio.h> int main() { int a1[]={1,2,3,5,246,34,21,67,90,777}; int length = sizeof(a1)/sizeof(a1[0]); int totalBits = sizeof(a1); int maxIndex = 0; //测试数组地址和元素地址 printf("a1数组地址为:%p\n",a1); printf("a1数组大小为:%d,长度即数组元素个数为%d\n",totalBits,length); for (int i=0;i<length;i++) { printf("a[%d]地址为:%p,值为:%d\n",i,&(a1[i]),a1[i]); } //声明求出数组最大值的函数 int maxNumIndex(int array[],int arraylength); //int maxNumIndex();也可以声明函数 maxIndex = maxNumIndex(a1,length); printf("a1数组元素最大值为:%d,是数组的第%d个元素\n",a1[maxIndex],maxIndex+1); void printArray();//输出数组元素 void reverseArray();//逆转数组元素 printArray(a1,length); reverseArray(a1,length); printArray(a1,length); return 0; } void printArray(int array[],int arraylength) { printf("数组遍历结果为:"); for (int i=0;i<arraylength;i++) { printf("%d,",array[i]); } printf("\n"); } void reverseArray(int array[],int arraylength) //此处利用数组地址传递,无返回值,以后可以写指针类型的函数,返回目标指针 { int half = arraylength/2;//从两边向中间收尾交换,无论奇偶数 for (int i=0;i<=half;i++) { int temp = array[i]; array[i] = array[arraylength-1-i]; array[arraylength-1-i] = temp; } printf("数组逆转操作成功!\n"); } int maxNumIndex(int* array,int arraylength) //int* array 等价于 int array[],如此就没有警告了 { int maxIndex = 0; int size = sizeof(array); //int index = 0; printf("array指针大小为:%d,指向数组的长度即数组元素个数为%d\n", size,arraylength);//sizeof(array[])是错误的写法 for(int i=0;i<arraylength;i++) { if(array[maxIndex]<array[i]) //此处大小,也容易混淆,所以勤快测试 { maxIndex = i; } } return maxIndex; }
程序运行结果如下(编辑器突然不能上传图片,那么copy出来了):
MacdeMacBook-Pro:abc mac$ ./array a1数组地址为:0x7fff5e7ecbe0 a1数组大小为:40,长度即数组元素个数为10 a[0]地址为:0x7fff5e7ecbe0,值为:1 a[1]地址为:0x7fff5e7ecbe4,值为:2 a[2]地址为:0x7fff5e7ecbe8,值为:3 a[3]地址为:0x7fff5e7ecbec,值为:5 a[4]地址为:0x7fff5e7ecbf0,值为:246 a[5]地址为:0x7fff5e7ecbf4,值为:34 a[6]地址为:0x7fff5e7ecbf8,值为:21 a[7]地址为:0x7fff5e7ecbfc,值为:67 a[8]地址为:0x7fff5e7ecc00,值为:90 a[9]地址为:0x7fff5e7ecc04,值为:777 array指针大小为:8,指向数组的长度即数组元素个数为10 a1数组元素最大值为:777,是数组的第10个元素 数组遍历结果为:1,2,3,5,246,34,21,67,90,777, 数组逆转操作成功! 数组遍历结果为:777,90,67,21,246,34,5,3,2,1, MacdeMacBook-Pro:abc mac$
相关文章推荐
- 黑马程序员之C#编程基础学习笔记:将一个字符串数组的元素的顺序进行反转。
- 黑马程序员之C#编程基础学习笔记:从一个整数数组中取出最大的整数。
- 黑马程序员之C#学习笔记:随机产生1-100的随即数插入到数组中,数字不能有重复
- 黑马程序员之C#编程基础学习笔记:将一个字符串数组输出为|分割的形式,比如“梅西|卡卡|郑大世"
- 黑马程序员 Java基础学习笔记3 循环和数组
- 黑马程序员------java学习笔记之数组基础
- 黑马程序员---数组,遍历,最值,查表法,第六天学习笔记
- 黑马程序员(学习笔记一)——关于一维数组的几种操作方式。求最大,最小值,查找!
- 黑马程序员_java数组学习笔记
- 【黑马程序员】 学习笔记 - Java数组及排序算法
- 黑马程序员----java学习笔记之数组知识点
- 黑马程序员—C学习笔记—结构体变量五种定义方式与指针结构体数组探究
- 黑马程序员之C#编程基础学习笔记:将一个整数数组的每一个元素进行如下的处理:如果元素是正数则将这个位置的元素的值加1,如果元素是负数则将这个位置的元素减1。
- 算法学习笔记----最大子数组问题
- 黑马程序员之C#学习笔记: 使用Stream.Write方法向流中写字节数组
- 黑马程序员之C#编程基础学习笔记:计算一个整数数组的所有元素的和。
- 黑马程序员--学习笔记--一个字符串、数组、函数综合运用的小练习
- 黑马程序员之C#编程基础学习笔记:有一个整数数组,请声明一个字符串数组,将整数数组中的每一个元素的值转换为字符串保存到字符串数组中
- 黑马程序员java学习—如何获取数组中的最大值
- 数组求最大,最小,和,平均 学习笔记