C语言教程6数组.ppt
#include main( ){ char name[13]; int i; for (i =0; i <=12; i ++)scanf(“ %c”,&name[i]); for (i =0; i <=12; i ++)printf(“ %c”,name[i]); scanf(“ %s”,name); printf(“ %s”,name);} 例2:采用不同的方式输入输出字符串 运行结果:Pear & Apple ? Pear & Apple Pear & Apple ? Pear ? scanf中须用地址量,数组名表示地址量。 /*pro10_12.c*/ #include #include main( ) {int i; char name[7][4]={"sun","mon","tue","wed","thu","wen","sat"}; printf("Result is:\n"); name[0][3]='&'; name[2][3]='&'; name[5][3]='&'; for (i=0;i<7;i++) printf("%s\n",name[i]); getch(); } 例3: 字符串数组值的改变。 程序运行结果: sun&mon mon tue&wed wed thu wen&sat sat 赋初值: 改变后: 例4: P.165, P.166 §6.5 数组作为函数的参数 一、数组元素作为函数的参数 使用方法:把数组元素作为函数的实参。 由于数组元素的性质与相同类型的简单变量的性质完全相同,因此,把数组元素作为函数的参数也和简单变量一样。 作用:传值。 /*----pro10_1.c----*/ #include #include main( ) {float b[3]; float ave; b[0]=21.3; b[1]=b[0]/3; b[2]=8.2; printf(" b[0]=%4.1f\t b[1]=%4.1f\t b[2]=%4.1f\n",b[0],b[1],b[2]); float Expfun1(float a,float b,float c); /*函数说明*/ ave=Expfun1(b[0],b[1],b[2]); /*函数调用*/ printf(" ave=%4.1f\n",ave); printf(" b[0]=%4.1f\t b[1]=%4.1f\tb[2]=%4.1f\n",b[0],b[1],b[2]); 例2:将数组元素作为函数的实参数 getch(); } float Expfun1(float a,float b,float c) /*函数定义*/ { float sum,aver; sum=a+b+c; a=a+5.5; b=b+5.5; c=c+5.5; aver=sum/3.0; printf(" a=%4.1f\t b=%4.1f\t c=%4.1f\n",a,b,c); return (aver); } b[0]=21.3 b[1]= 7.1 b[2]= 8.2 /*调用前*/ a=26.8 b=12.6 c=13.7 ave=12.2 b[0]=21.3 b[1]= 7.1 b[2]= 8.2 /*调用后*/ 程序运行结果: 二、数组名作为函数参数 1. 数组名的作用 数组名代表的是数组的起始地址; 也就是第1个元素的地址。 例:P.168 使用数组名作为函数的参数时,形参和实参必须是同一类型的数组名,系统采用地址传送方式进行数据传递,即实参的首地址传递给形参的首地址,实参与形参共享相同的数据单元。 使用方法:函数的实参和形参都必须是数组名。 作用:传址。 2. 把数组名作为函数参数的规则 (可以在函数中修改数组元素的值。) 例:P.169 /*pro10_2.c*/ #include #include main( ) {float Expfun2(float a[4]); /*函数说明*/ float s[4]={88.5,90.5,70,71}; float ave; printf(" s[0]=%4.1f\t s[1]=%4.1f\t s[2]=%4.1f\t s[3]=%4.1f\n",s[0],s[1],s[2],s