实验四数组 、实验目的 数组是有序数据的集合,通过实验上机掌握一维和二维数组的使用,以及字 符串处理函数的使用方法。 二、实验要求 1.掌握一维数组的定义和数组元素引用的正确方法。 2.掌握二维数组的定义和数组元素引用的正确方法 3.熟悉在什么情况下使用数组,并熟练运用数组来解决实际问题。 4.掌握字符串处理函数的使用方法 5.编写实验报告(四)。 三、实验内容 4-1编写程序S4-1C。计算 fibonacci数列的前15个数,并将其存放到一维数 组f中,然后输出结果。 4-2读程序S4-2C,说明程序的功能和输出结果,然后执行程序,验证结果的 正确性。 源程序S4-2C inta[B3][4}={4,6,3,-7},{5,2,7,-4},{8,6,4,-1} Int min, p,1,J; for(i=0i<=2;计++) i min=abs(ajJ[oD for(=0j<=3j++) if(abs(ajlD)<min) i min=abs(aj[D: printf("odIt(%d, %d)n",a[][pl,i,p) 4-3完善程序S4-3C,使其能输出如下图形
实验四 数 组 一、实验目的 数组是有序数据的集合,通过实验上机掌握一维和二维数组的使用,以及字 符串处理函数的使用方法。 二、实验要求 1. 掌握一维数组的定义和数组元素引用的正确方法。 2. 掌握二维数组的定义和数组元素引用的正确方法。 3. 熟悉在什么情况下使用数组,并熟练运用数组来解决实际问题。 4. 掌握字符串处理函数的使用方法。 5. 编写实验报告(四)。 三、实验内容 4-1 编写程序 S4-1.C。计算 fibonacci 数列的前 15 个数,并将其存放到一维数 组 f 中,然后输出结果。 4-2 读程序 S4-2.C,说明程序的功能和输出结果,然后执行程序,验证结果的 正确性。 源程序 S4-2.C main() { int a[3][4]={{4,6,3,-7},{5,2,7,-4}, {8,6,4,-1}}; int min, p, i, j; for (i=0;i<=2; i++) { min=abs(a[i][0]); p=0; for(j=0;j<=3;j++) if(abs(a[i][j])<min) { min=abs(a[i][j]); p=j; } printf("%d\t (%d,%d)\n", a[i][p],i,p); } } 4-3 完善程序 S4-3.C,使其能输出如下图形。 * * * * * * * * * *
源程序S4-3C maino static char a[}={'*,*’,*’,*’,*}; for(i=0;i maI char classi8]={"王小华","张三”,"赵四","向玲","丁一"}; int 1, flag=0; char name [8] printi("请输入要查询的学生姓名:") gets (name) for(i=0;i<5;i++) /*与初始化中的5个人进行比较* if( printf("%s是这个班的。mn",name) printf("%s不是这个班的。n",name 4-7编写程序S4-7C。用二维数组实现输出下面的杨辉三角形(要求输出前10 行)
* * * * * * * * * * * * * * * 源程序 S4-3.C main() { static char a[]={ ′*′,′*′,′*′,′*′,′*′}; int i,j,k; char space=′′; for(i=0;i main() {char class[5][8]={"王小华","张三","赵四","向玲","丁一"}; int i, flag=0; char name [8]; printf("请输入要查询的学生姓名:"); gets (name); for(i=0;i<5;i++) /* 与初始化中的 5 个人进行比较 */ if ( )= =0) flag=1; if ( ) printf("%s 是这个班的。\n",name); else printf("%s 不是这个班的。\n",name); } 4-7 编写程序 S4-7.C。用二维数组实现输出下面的杨辉三角形(要求输出前 10 行)。 1
3 1360 4 4-8从键盘上输入一个字符,用折半查找法找出该字符在已排序的字符串a中 的位置。若该字符不在a中,则打印“该字符不在a中”。试完善程序S4-8C。 源程序S4-8C include maino i char a[12]="abcdefklmnp" ch int 1, top, bot, mid printf("Input a character In") scanf("%", &ch printf("ch=%cIn",ch); if(bot>top) printf(("该字符不在a中Ⅶn"), 4-9不用 strcat)函数,将两个字符串连接起来,试完善程序S49C。 程序S49.C maino i char sl[80], S2[40] int F=,=0; printf("Enter s1: ) scanf("%s", s1) printf("Enter s2: ) scanf("%s", S2) printf("rEsult is: %s"S1) getcho 4-10程序S4-10.C的功能是找出数组x中的最小值和次小值,并分别将其与x[O] 和x[交换。调试程序,使其能够运行出正确的结果。 注意:不能增加行或删除行,也不能更改程序的结构, 源程序S4-10C
1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 ┇ ┇ 4-8 从键盘上输入一个字符,用折半查找法找出该字符在已排序的字符串 a 中 的位置。若该字符不在 a 中,则打印“该字符不在 a 中”。试完善程序 S4-8.C。 源程序 S4-8.C # include main() { char a[12]="abcdefklmnp",ch; int i, top,bot,mid; printf("Input a character \n"); scanf("%c",&ch); printf("ch=%c\n",ch); if (bot >top) printf("该字符不在 a 中\n"); } 4-9 不用 strcat()函数,将两个字符串连接起来,试完善程序 S4-9.C。 源程序 S4-9.C main() { char s1[80],s2[40]; int i=0,j=0; printf("Enter s1:"); scanf("%s",s1); printf("Enter s2:"); scanf("%s",s2); printf("\nResult is:%s",s1); getch(); } 4-10 程序S4-10.C的功能是找出数组x中的最小值和次小值,并分别将其与x[0] 和 x[1]交换。调试程序,使其能够运行出正确的结果。 注意:不能增加行或删除行,也不能更改程序的结构, 源程序 S4-10.C
main( {intx[={58,7,6,2,7,3,9,0,4} inti,t,ml=0,m2=0,minl=32767min2=32767; for(i=1;i<10;i++) if(x[]<min1) i min2=minI; m2=m1 mInI-X 1: mI=i; else if(x[]<min2) i min2=x[] t=x[O; xml=x[Ok; x[mll=t; t=x[1; xm2]=x[1]; x[m2]=t; for(i=1;i<10;i++) printf(%o3d”x); retch *4-11编写程序S4-11C,模拟用户注册和登录的过程,登录时要进行身份 验证。(注有“*”的实验题可以选做)
main() { int x[]={5,8,7,6,2,7,3,9,0,4}; int i,t,m1=0,m2=0,min1=32767,min2=32767; for(i=1;i<10;i++) if(x[i]<min1) { min2=min1; m2=m1; min1=x[i]; m1=i; } else if(x[i]<min2) { min2=x[i]; m2=i; } t=x[0];x[m1]=x[0];x[m1]=t; t=x[1];x[m2]=x[1];x[m2]=t; for(i=1;i<10;i++) printf("%3d",x); getch(); } *4-11 编写程序 S4-11.C,模拟用户注册和登录的过程,登录时要进行身份 验证。(注有“*”的实验题可以选做)