《c语言实验报告数组.pdf》由会员分享,可在线阅读,更多相关《c语言实验报告数组.pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1 C 语言实验报告实验名称专业姓名学号班级指导老师实验七数组1.实验目的(1)熟练掌握一维数组、二维数组的定义、初始化和输入/输出方法;(2)熟练掌握字符数组和字符串函数的使用;(3)掌握与数组有关的常用算法(如查找、排序等)。2.实验指导(1)对任意一个一维型数组,从中找出数组元素的最大值和最小值并输出。要求:数组有十个元素;使用 scanf 函数实现数组元素的输入前给出必要的提示;输出时,首先输出数组的十个元素,然后输出其最大值和最小值。分析指导:算法分析:首先定义一个数组,通过循环从键盘输入十个数组元素的值,再通过另一个循环判断数组元素的最大只和最小值;根据分析情况编写程序:#incl
2、udemain()int a10,i,max,min;printf(please input ten integers:);for(i=0;i=9;i+)scanf(%d,&ai);max=a0;min=a0;for(i=1;imax)2 max=ai;if(aimin)min=ai;for(i=0;is2,返回一个正数;s1=s2,返回 0;s1s2,返回一个负数,在主函数中调用该函数完成字符串的比较操作,并输出返回的值。要求:不允许使用 strcmp()函数;用 gets()函数在主函数中输入两个字符串;实现触摸屏受托人()函数,返回的正数或负数的绝对值应该是进行比较的两个字符传中相应字符
3、的ASCII 码的差值。分析指导:算法分析:两个字符串从第一个字符开始一一对应进行比较,直到不相等的那个字符,从而求得它们的ASCII 码的差值。比如,A与C相3 比,由于 AC,应输出负数,由于 A与 C 的 ASCII 码的差值为2,因此,应输出“-2”。同理,“And”和“Aid”比较,根据第二个字符比较结果,n比I 大 5,因此应输出 5;根据分析情况编写程序:#includeint cmpstr(char s1,char s2)int i,diff;i=0;while(s1i=s2i)&(s1i!=0)i+;if(s1i=0&s2i=0)diff=0;elsediff=s1i-s2i
4、;return diff;void main()int z;char s1100,s2100;printf(input the first string:);/输入字符串 1gets(s1);printf(input the second string:);/输入字符串 2gets(s2);z=cmpstr(s1,s2);/输出比较结果printf(the difference between two strings is%dn,z);查看运行结果如下:重新输入两个字符串meet,mood运行结果如下:4(3)再给定的字符串中查找指定的字符。要求:字符串采用直接初始化的方式处理;通过 scan
5、f 函数读入一个任意字符;在字符串中查找该字符,如果存在该字符,输出该字符在字符串中的一次出现的位置,如果再给定的字符串中不存在该字符,则给出相应的说明信息。#includevoid main()i nt i;char ch;char s=program;printf(输入一个英文字母:);scanf(%c,&ch);for(i=0;si!=0;i+)if(si=ch)break;i f(i7)printf(s%d=%cn,i,ch);elseprintf(No foundedn);输入一个英文字母O运行程序如下:5 再次输入一个英文字母w运行程序如下:(4)首先输入一个大于二且小于十的整数n
6、,然后定义一个二维整型数组(n*n),初始化该数组,讲述组中最大元素所在的行和最小元素所在的行对调。要求:n*n 数组元素的值由 scanf 函数从键盘输入(假定最大值最小值不在同一行上),然后输出该数组;查找最大值最小值所在的行,将数组中最大元素所在的行和最小元6 素所在的行对调,并输出对调后的数组;为直观起见,数组按n 行 n 列的方式输出;修改程序,对最大值与最小值可能出现在一行种的情况进行处理。#includemain()long matrix99,min,max,temp;int i,j,n,nMax=0,nMin=0;printf(nplease inpute n of matri
7、x:n);scanf(%d,&n);printf(nplease inpute elements of matrix(%d*%d):n,n,n);for(i=0;in;i+)for(j=0;jn;j+)scanf(%ld,&matrixij);min=max=matrix00;for(i=0;in;i+)for(j=0;jmax)max=matrixij;nMax=i;else if(matrixijmin)min=matrixij;nMin=j;for(j=0;jn;j+)temp=matrixnMaxj;matrixnMaxj=matrixnMinj;matrixnMinj=temp;printf(nResult matrix:n);for(i=0;in;i+)for(j=0;jn;j+)printf(%5ld,matrixij);printf(n);输入一个数 4,输入一个 4*4 的数组7 13 6 7 24 5 8 13 5 7 26 9 7运行程序如下:再次输入一个数字3,输入一个 3*3 的数组12 324 537 8运行程序如下:8 3 实验结论通过本次实验熟练的掌握一维数组、二维数组的定义、初始化和输入/输出方法以及字符数组和字符串函数的使用,还有就是掌握与数组有关的常用算法