继续进行上一次的数组。
一,数组
1.1数组作为函数的参数
#include<stdio.h> void printArr(int arry[3]) //形参中不存在数组的概念,即便中括号约定了数组的大小,也无效 //传递是一个地址,是数组的首地址 { int i; for(i=0;i<3;i++){ printf("%d ",arry[i]); } } int main() { int arry[3]={1,3,5}; printArr(arry); //实参 return 0; }
数组作为形参时,传递的是地址。编程案例,有两个班的同学,分别是10个人和5个人,分别求这两个班的平均分。
#include<stdio.h> float twoClassAverage(int arr[],int len) { int total = 0; for(int i=0;i<len;i++){ total = arr[i] + total; } return total/(float)len; } int main() { int arr1[5] = {50,56,90,39,31}; int arr2[10] = {23,56,89,90,35,67,58,97,67,60}; int arr1Len = sizeof(arr1)/sizeof(arr1[0]); int arr2Len = sizeof(arr2)/sizeof(arr2[0]); printf("一班的平均成绩为:%.2f",twoClassAverage(arr1,arr1Len)); printf("二班的平均成绩为:%.2f",twoClassAverage(arr2,arr2Len)); return 0; }
1.2二维数组作为函数的参数
形参怎么写 注意列,可以不注意行 正确写法 int[2][3];
int[][3];
错误写法int[][];
#include<stdio.h> void printArryDouble(int arr[][3]) { int i; int j; for(i=0;i<2;i++){ for(j=0;j<3;j++){ printf("%d ",arr[i][j]); } putchar('\n'); } } int main() { int arr[2][3] = {{1,4,7},{8,20,7}}; printArryDouble(arr); return 0; }
练习:有3*4矩阵,初始化它并输出,然后求最大值并输出
#include<stdio.h> void printArryDouble(int arr[][4],int hang,int lie) { int i; int j; for(i=0;i<hang;i++){ for(j=0;j<lie;j++){ printf("%d ",arr[i][j]); } putchar('\n'); } } void initArryDouble(int arr[][4],int hang,int lie) { int i; int j; for(i=0;i<hang;i++){ for(j=0;j<lie;j++){ printf("请输入%d行,第%d列的数据",i+1,j+1); scanf("%d",&arr[i][j]); } } } int getMaxDataFromArryDouble(int arr[][4],int hang,int lie) { int i; int j; int max = arr[0][0]; for(i=0;i<hang;i++){ for(j=0;j<lie;j++){ if(max < arr[i][j]){ max = arr[i][j]; } } } return max; } int main() { int arr[3][4]; initArryDouble(arr,3,4); printArryDouble(arr,3,4); printf("最大值为%d",getMaxDataFromArryDouble(arr,3,4)); return 0; }
1.3全局变量
案例:班上10个学生,封装一个函数,调用该函数后获得班上的平均分,最高分,最低分
#include<stdio.h> int max; int min; float getAverage(int arr[],int len) { int sum = 0; max = arr[0]; min = arr[0]; for(int i=0;i<len;i++){ sum = sum + arr[i]; if(max < arr[i]){ max = arr[i]; } if(min > arr[i]){ min = arr[i]; } } return (float)sum/len; } int main() { int scores[] = {89,67,45,67,80,67,45,23,56,78}; float average; average = getAverage(scores,sizeof(scores)/sizeof(scores[0])); printf("平均分数为%.2f,最高分为%d,最低分为%d",average,max,min); return 0; }
标签:arr,min,int,float,C语言,学习,数组,第四天,include From: https://www.cnblogs.com/Lynchteacher/p/17281573.html