- 1、本文档共56页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * #include stdio.h void initArray(int x[], int n, int val) { int i; for(i = 0; i n; i++) x[i] = val; } void main() { int a[10], b[100]; initArray(a, 10, 1); initArray(b, 50, 2); initArray(b[50], 50, 4); } 例:数组前n个元素赋指定值 说明:分别给数组a的所有元素赋值1; 为数组b的前50个元素赋值2; 后50个元素赋值4。 * void sumAToB(int a[][10], int b[], int n) { int i, j; for(i = 0; i n; i++) for(b[i] = 0, j = 0; j 10; j++) b[i] += a[i][j]; } 例:将一个n×10的二维数组各行的10个元素之和存于另一个数组中。 说明:在函数中,对形参a的说明写成int a[][]是错误的。因二维数组的元素只是一行行存放,并不自动说明数组的列数(即每行元素个数)。如果在数组形参中不说明它的列数,就无法确定数组元素a[i][j]的实际地址。 * void readArray(int a[], int n) { int i; for(i = 0; i n; i++) { printf(Enter a[%d] , i); scanf(%d, a[i]); } } 【例6.7】为数组输入值的函数 【例6.8】求数组中最大元素值的函数 int maxInArray(int a[ ], int n) { int i, m; for(m = 0, i = 1; i n ; i++) if (a[m] a[i]) m = i; return a[m]; } * 数组形参说明:类型 形参名[ ] 或 类型 *形参名 #include stdio.h int sum(int *a, int n) /* 求n个数之和 */ { int i, s; for(s = i = 0; i n; i++) s += a[i]; return s; } void main() { int x[] = {1, 2, 3, 4, 5}; int i, j; i = sum(x, 5); j = sum(x[2], 3); printf(i = %d\nj = %d\n, i, j); } 数组形参说明 运行结果 i = 15 j = 12 * 指针形参就是函数中的指针变量,函数sum()的定义可改写成如下形式: int sum(int *a, int n) { int s = 0; for( ; n--; ) s += *a++; return s; } 数组形参说明 利用首元素指针和元素个数等形参,对数组进行处理。函数sum()也可改写成以下形式。 int sum(int *a, int n) { int *ap, s; for(s = 0, ap = a; ap a+n; ap++) s += *ap; return s; } * 将一个已知字符串的内容复制到另一字符数组中。拷贝函数要有两个形参from,to。from为已知字符串的首字符指针,to为存储复制的字符串首字符指针。 函数定义如下: void strcpy(char *to, char *from) { while (*to++ = *from++); } 【例6.9】字符串拷贝函数 strcpy() * 返回2个字符串第一个不同的字符的ASCII码的差值; 如果2个字符串内容完全相同,函数返回值为 0 int strcmp(char *s,char *t) /* return 0, if st; 0, if s==t; 0, if st
文档评论(0)