例8.17,数组比较:有两个数组a、b,各有10个元素,将它 们对应地逐个相比(即a[0]与b[0]比、a[1]与b[1]比、. a[9]与b[9]比)。 要求:统计出两个数组相应元素大于、等于、小于的次数。 分析: ①利用函数完成2个数组相应元素的比较。 ②将对应数组元素作为函数参数进行比较,根据函数返回值 统计两个数组相应元素大于、等于、小于的次数
例8.17,数组比较:有两个数组a、b,各有10个元素,将它 们对应地逐个相比(即a[0]与b[0]比、a[1]与b[1]比、.、 a[9]与b[9]比)。 要求:统计出两个数组相应元素大于、等于、小于的次数。 分析: ① 利用函数完成2个数组相应元素的比较。 ② 将对应数组元素作为函数参数进行比较,根据函数返回值 统计两个数组相应元素大于、等于、小于的次数
① #include <stdio.h> ① int main0l比较数组 ② int large(intx,inty) ② {inta[10],b[10],i,m=0,n=0,k=0; ③ Ⅲ比较两个数的大小关系 ③ for(i=0;i<=9;i++) ④《intf; ④ scanf("%d",&a);∥输入a数组 ⑤ if(x>y)f仁1; ⑤ for (i=0;i<=9;i++) ⑥ else if (x==y)f=0; ⑥ scanf("%d",&b[;∥输入b数组 ⑦ else f=-1; ⑦ for (i=0;i<=9;i++) ⑧ return f; ⑧ if (large(a[i],b[i])==1) m++; ⑨ ⑨ if(large(a0,b0)==o) n++; ⑩ if (large(a[i],b[i])==-1)k++; 23 45 678899 0 23456780901 ① 2 7 ② printf("%d %d %dln",m,n,k); ⑧ return 0; ④}
① #include <stdio.h> ② int large(int x,int y) ③ // 比较两个数的大小关系 ④ { int f; ⑤ if (x>y) f=1; ⑥ else if (x==y) f=0; ⑦ else f=-1; ⑧ return f; ⑨ } ① int main() //比较数组 ② { int a[10],b[10],i,m=0,n=0,k=0; ③ for (i=0;i<=9;i++) ④ scanf(" %d",&a[i]); // 输入a数组 ⑤ for (i=0;i<=9;i++) ⑥ scanf("%d",&b[i]); // 输入b数组 ⑦ for (i=0;i<=9;i++) ⑧ { if (large(a[i],b[i])==1) m++; ⑨ if (large(a[i],b[i])==0) n++; ⑩ if (large(a[i],b[i])==-1) k++; ⑪ } ⑫ printf("%d %d %d\n" ,m,n,k); ⑬ return 0; ⑭ }
8.4.2数组名作函数参数-P172 用数组名做函数参数,注意如下: ① 在C语言中,数组名代表的是数组的起始地址一地址常量。 ② 用数组名作函数参数时要求函数的形参和实参都必须是 相同类型的数组名或指针一明确的类型说明。 ③ 用数组名作函数实参时,向形参传递的是实参数组在内存 中的首地址一地址常量。 ④实参中的数组首地址传到形参中,实参和形参共用同一段 内存-一一函数中对形参数组元素的操作实际是对实参数 组元素的操作
8.4.2 数组名作函数参数-P172 用数组名做函数参数,注意如下: ① 在C语言中,数组名代表的是数组的起始地址—地址常量。 ② 用数组名作函数参数时-要求函数的形参和实参都必须是 相同类型的数组名或指针—明确的类型说明。 ③ 用数组名作函数实参时,向形参传递的是实参数组在内存 中的首地址—地址常量。 ④ 实参中的数组首地址传到形参中,实参和形参共用同一段 内存-函数中对形参数组元素的操作实际是对实参数 组元素的操作