1、c语言实验报告同名C语言课内实验报告学生姓名:及 学 号:学 院:理学院班 级:课程名称:实验题目:数组的应用指导教师姓名及职称:李鹏松 教 授方 向 实验师刘 力 实验师 C语言课内实验一、实验题目:数组的应用二、实验目的:1掌握一、二维数组、字符数组的定义、初始化和引用方法及字符串函数的用法。2理解与数组有关的算法。三、实验内容:1用起泡法(或称冒泡法)对15、5、9、2、7、11、8、3、12、1共10个整数由小到大排序。画出N-S算法流程图,编写源程序,给出注释及运行结果。至少自己修改数据1次,重新运行1个新结果。2求A矩阵与B矩阵的和矩阵C。其中,。画出N-S算法流程图,编写源程序,
2、给出注释及运行结果。至少自己修改数据1次,重新运行1个新结果。3编程求出二维数组a的最大元素,同时求出该最大元素所在的行row和列column。a数组的矩阵表示如下:。画出N-S算法流程图,编写源程序,给出注释及运行结果。4定义一个二维数组,存放5个字符串“dog”,“tiger”,“wolf”,“cat”,“horse”,然后用选择法将这5个字符串按由小到大的顺序并输出。画出N-S算法流程图,编写源程序,给出注释及运行结果。四、实验结果:1. #include /*标准输入输出函数库*/void main() /*定义主函数为空类型*/ int a10,i,j,t; /*定义一个长度为10的
3、整型数组,数组名为a,定义i,j,t为整型变量*/ printf(Please input ten numbers:n); /*提示用户输入十个数字*/ for(i=0;i10;i+) /*给i赋初值为0;如果i小于10,则执行下面的内嵌语句,给i自加1,一直重复这个过程,直到i大于等于10*/ scanf(%d,&ai); /*把输入的10个数依次存放在之前定义好的数组中*/ for(j=0;j9;j+) /*给j赋初值为0;如果j小于9,则执行下面的内嵌语句,给j自加1,一直重复这个过程,直到j大于等于9*/ for(i=0;iai+1) /*如果数组中,第i+1个元素大于第i+2个元素,
4、则执行下面的内嵌语句*/ t=ai; /*把数组中第i+1个元素赋给t*/ ai=ai+1;/*把数组中第i+2个元素放到第i+1的位置,并覆盖该位置原来的元素*/ ai+1=t;/*把t中存放的值放到数组的第i+2个位置,并覆盖该位置原来的元素*/ printf(n);/*使光标跳到下一行开头*/ printf(The result is :n); /*输出The result is :,并使光标跳到下一行开头*/ for(i=0;i10;i+) /*给i赋初值为0;如果i小于10,则执行下面的内嵌语句,给i自加1,一直重复这个过程,直到i大于等于10*/ printf(%d,ai);/*把
5、排列好的十个数依次输出*/ printf(n);/*使光标跳到下一行开头*/2. #include /*标准输入输出函数库*/void main() /*定义主函数为空类型*/ int a34,b34,c34,i,j; /*定义了三个三行四列的二维数组,数组名分别为a,b,c,定义i,j为基本整型变量*/ printf(Please input a:n); /*提示用户输入矩阵a*/ for(i=0;i=2;i+) /*把0赋给i,当i2*/ for(j=0;j=3;j+) /*把0赋给j,当j3*/ scanf(%d,&aij); /*把输入的数值依次存放到数组a中*/ printf(Ple
6、ase input b:n); /*提示用户输入矩阵b*/ for(i=0;i=2;i+) /*把0赋给i,当i2*/ for(j=0;j=3;j+) /*把0赋给j,当j3*/ scanf(%d,&bij); /*把输入的数值依次存放到数组b中*/ for(i=0;i=2;i+)/*把0赋给i,当i2*/ for(j=0;j=3;j+)/*把0赋给j,当j3*/ cij=aij+bij;/*把数组a中第i+1行,第i+1列的元素与数组b中第i+1行,第i+1列相加,所得到的结果,存放在数组c的第i+1行,第j+1列,并覆盖此位置原来的元素*/ printf(c:n); /*输出c:,并使光标
7、移到下一行的开头*/ for(i=0;i=2;i+) /*把0赋给i,当i2*/ for(j=0;j=3;j+) for(j=0;j=3;j+)/*把0赋给j,当j3*/ printf(%3d,cij); /*依次输出数组c中的元素*/ printf(n); /*使光标跳到下一行*/ 3. #include /*标准输入输出函数库*/void main() /*定义主函数为空类型*/ int a34=10,9,2,1,12,2,11,3,4,13,21,14,i,j,max,row,column;/*定义了一个三行四列的二维整型数组,数组名为a,并进行初始化,定义i,j,max,row,col
8、umn为整型变量*/ max=a00;/*把数组中第一行第一列的元素赋给max*/ for(i=0;i=2;i+)/*给i赋初值为o,如果i2*/ for(j=0;j=3;j+)/*给j赋初值为o,如果j3*/if(aijmax)/*判断aij是否大于max中的值,如果成立,就执行下面的内嵌函数*/ max=aij; /*把aij赋给max*/ row=i+1; /*把i+1中的值赋给row*/ column=j+1; /*把j+1中的值赋给rolumn*/printf(The biggest number in these numbers is %dnrow=%dncolumn=%d,max
9、,row,column);/*输出这个矩阵中的最大数和这个数所在的行,列*/4. #include /*标准输入输出函数库*/#include /*包括字符串函数*/void main() /*定义主函数为空类型*/ char a56;/*定义一个五行六列的二维字符型数组,数组名为a*/ char string10; /*定义了一个包含10个元素的一维字符型数组,数组名为string*/ int i,n; /*定义i,n为基本整型变量*/ for(i=0;i5;i+) /*给i赋初值为0,当i=5*/ gets(ai); /*输入5个字符串*/ for(n=0;n1000;n+) /*给n赋初
10、值为0,当n=1000*/ for(i=0;i5;i+) /*给i赋初值为0,当i=5*/ if (strcmp(ai,ai+1)0)/*如果前一个字符串比后一个字符串大,就执行下面的内嵌语句*/ strcpy(string,ai); /*把ai拷贝到 string,并覆盖掉原位置之前的内容*/ strcpy(ai,ai+1); /*把ai+1拷贝到ai中,并覆盖掉原位置之前的内容*/ strcpy(ai+1,string);/*把string拷贝到ai+1中,并覆盖掉原位置之前的内容*/ for(i=0;i5;i+)/*给i赋初值为0.当i=5*/ printf(%d:%st,i+1,ai); /*从大到小输出之前输入的字符串,并给每个字符串编号*/五、实验体会或遇到问题:在这次的c语言实验中,最后一个题花费的时间最多,应该使字符串这里还住那个我的不够好,以后,多看看书,自己写写书上的程序。不知道为什么,每次都要写完程序才画得出N-S流程图,不然,一点思路都没有,以后,多多练习先画图,在写程序吧!
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1