C语言学习笔记:10_函数_高级
2015-07-05 13:55
671 查看
/* * 10_函数_高级.c * * Created on: 2015年7月5日 * Author: zhong */ #include <stdio.h> #include <stdlib.h> /* * 数组元素作为传递给函数 :向形参变量传递的是数组元素的值(值传递) * 例子:求数组的最大值,将数组元素传递给max_()函数,进行比较 */ void array_max() { int max, index, i; int array[10] = { 3, 5, 2, 6, 1, 7, 4, 8, 9, 35 }; for (i = 0, max = array[0], index = 0; i < 10; i++) { if (max_(max, array[i]) > max) { //函数max_(int a,int b) 在09函数.c里面已经定义过 max = max_(max, array[i]); index = i; } } printf("max=%d,index=%d", max, index + 1); } /** *数组名作为函数参数:用数组名作函数实参时,向形参(数组名或指针变量)传递的是数组首元素的地址 */ //求数组平均数的函数,以数组为形参 void array_avg() { float avg_(float array[10],int arrya_length); //函数声明 float array[10] = { 30, 58, 90, 89, 78, 100, 85.5, 83.5, 90, 65 }; float avg = avg_(array,10); printf("avg=%6.2f", avg); } //由于c语言数组没有获得数组长度的方法,所以只能手动传入数组长度,以便适合更多数组 float avg_(float array[],int arrya_length) { // avg_(float array[10]) 定义时也可以加元素长度,但编译系统并不会检查,所以并没什么卵用,还觉得sb // array[1]=700; int i; float sum = 0; for (i = 0; i < arrya_length; i++) { sum += array[i]; } return sum / 10; } void array_sort(){ void sort_(int arr[],int length);//函数声明 int array[10] = { 3, 5, 2, 6, 1, 7, 4, 8, 9, 35 }; sort_(array,10); int i; for(i=0;i<10;i++){ printf("%d ",array[i]); //1 2 3 4 5 6 7 8 9 35 } } /* * 使用选择排序法对数组进行排序 * 思路: * a[0]-a[1]比,如果a[0]>a[1] 交换位置 */ void sort_(int arr[],int length){ int i,j; // for(i=0;i<length-1;i++){ //arr[9] for(j=i+1;j<length;j++){ //arr[10] if(arr[i]>arr[j]){ int temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } } } } //-----------多维数组作为函数参数------------------ /** * 有一个3x4矩阵,求所有元素中的最大值 思路和单纯数组差不多的 */ int max_m_(int array[][4],int r_len){ //定义形参多维数组时,第二个[]要指定数组大小 int i,j,max=array[0][0]; for(i=0;i<r_len;i++){ for(j=0;j<4;j++){ if(array[i][j]>max){ //a[0][0] a[0][1] max=array[i][j]; } } } return max; } //多维数组的最大值 void array_max_m_(){ // int arr[][4]={{1,4,2,5},{3,5,2,7},{6,4,7,3}}; int arr[3][4]={{1,4,2,5},{3,5,2,7},{6,4,7,3}}; int max=max_m_(arr,3); printf("max=%d",max); } int main10() { // array_max() // array_avg(); // array_sort(); array_max_m_(); return 0; // system("pause"); }
相关文章推荐
- C语言学习笔记:09_函数
- 重新认识C语言
- C语言学习笔记:08_循环结构
- C语言学习笔记:07_交换两个数的多个方法
- C语言学习笔记:06_逻辑运算符和逻辑表达式
- C语言学习笔记:05_关系运算符和关系表达式
- C语言学习笔记:01_基本数据类型
- C语言学习笔记:04_选择结构
- C语言学习笔记:02_输入输出函数
- C/C++ Volatile关键词深度剖析
- c++面试题
- c++ public、private和protected区别
- 【GNU】自由软件开发C&C++(环境安装篇)
- 关于C++中用两个迭代器方式初始化string的知识
- 算法导论学习---红黑树详解之插入(C语言实现)
- C++关于磁盘的数据的操作
- 【C语言】编写函数实现库函数atof
- 【C语言】编写函数实现库函数atoi,把字符串转换成整形(考虑数字过大)
- VC++6.0 Debug单步调试简单入门
- C++ traits技术