第10周 C语言及程序设计提高例程-36 多维数组作函数参数
2016-06-01 17:24
621 查看
问题及代码:
/*用多维数组名作函数参数*/ #include <stdio.h> int max_value(int array[][4]); int main() { int a[3][4]={{11,32,45,67},{22,44,66,88},{15,72,43,37}}; printf("max value is %d\n",max_value(a)); return 0; } int max_value(int array[][4]) { int i,j,max; max=array[0][0]; for(i=0;i<3;i++) for(j=0;j<4;j++) if(array[i][j]>max) max=array[i][j]; return max; } /*工程中更普遍的做法:行数作为形参*/ #include <stdio.h> int max_value(int array[][4],int); int main() { int a[3][4]={{11,32,45,67},{22,44,66,88},{15,72,43,37}}; printf("max value is %d\n",max_value(a,3)); return 0; } int max_value(int array[][4],int n) { int i,j,max; max=array[0][0]; for(i=0;i<n;i++) for(j=0;j<4;j++) if(array[i][j]>max) max=array[i][j]; return max; } /*例:3个学生4门课,计算总平均分,并输出第n个学生成绩*/ #include<stdio.h> void average(int *p,int n); void search(int (*p)[4], int n); int main() { int score[3][4]={{65,85,87,58},{56,54,85,96},{48,69,78,98}}; average(*score,12); search(score,2); //单词拼写少了一个a,导致出错,为什么这里后面是整数2? return 0; } void average(int *p,int n) { int *p_end,sum=0,aver; p_end=p+n-1; for(;p<=p_end;p++) sum=sum+(*p); aver=sum/n; printf("average=%4d\n",aver); } void search(int (*p)[4],int n) { int i; printf("No.%d :",n); for(i=0;i<4;i++) printf("%4d",*(*(p+n)+i)); //不小心这里少了一个小括号 printf("\n"); }
相关文章推荐
- 二叉树的C++模板类头文件源代码实现
- C/C++中关键字extren作用总结
- C++ typedef用法小结 (※不能不看※)
- C++11
- C++拷贝欧构造函数
- C++实现单向链表
- C++:文件流读写
- C语言inline详细讲解
- MFC复选框的使用
- C++继承:公有,私有,保护
- #pragma once与 #ifndef的区别
- 为CListBox垂直滚动条,自动滚动,文字显示不全问题!
- C++ STL 基础及应用(4) 输出输出流
- 几个学习用的c语言开源项目 和c++工具
- C001-C语言-语法与用法摘录-(ques=2)
- C语言练习篇-3控制语句练习,闰年
- extern "C"的作用
- 【c++】auto的使用
- cpp-netlib在VS2013下编译
- Usaco 轻轨 贪心