资源描述:
《顺序选择循环三种基本结构程序设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、(2012—2013学年第一学期)课程名称:结构化程序设计与C语言开课实验室:系机房4452012年11月12日年级、专业、班计科121、学号姓名成绩实验项目名称利用数组进行程序设计指导教师王翊教师评语该同学是否了解实验内容与要求:A.了解口B.基本了解口C.不了解口设计思想及流程图是否正确:A.正确口B.基本正确口C.较差口该同学的实验能力:A.强口中等口C.差口该同学的实验是否达到要求:A.达到口B.基本达到口C.未达到口实验报告是否规范:A.规范口B.基本规范口C.不规范口是否有运行结果与分析:A.详细口B.
2、—般口C.没有口是否有总结与体会:A.详细口B.—般口C.没有口教师签名:王翊2012年月日一、实验的目的1、掌握一维数组与二维数组的定义、赋值和输入输出的方法。2、掌握字符数组和字符串函数的使用。3、常握与数组有关的算法(特别是排序算法)。二、要求及内容本实验主要完成一维数组、二维数组、以及字符数组的应用,总共要求完成四个问题的源代码的编辑、编译、连接与运行,最终产生相关的运行结果,按规定要求提交相应的实验报告。具体耍求完成的问题如下:(注意:在模板中给出了题的页数与题号,请写正式报告时将书上的题目内容代替页数与
3、题号)(1)P168/2(2)P168/3(3)P168/6(4)P169/10三、算法设计思想或程序流程图(1)选出数组中最小的数,让最小数与a[0]交换位置;在余下的9个数中选取最小的数与a[l]交换位置;在余下的8个数中选出最小的数与a[2]交换位置;以此类推则可以将10个数进行排序。(2)算法设计思想:定义一个a⑶⑶的矩阵,对角线上的三个数据则为a[0][0],a[l][l],a⑵⑵,即可求三个数之和。(3)先定义一个十个元素的数组,用a[i][i]=l;a[订[0]二1;使得对角线元素和每行第一列元素分别
4、为1.用a[i][j]=a[i-l][j-l]+a[i-l][j];语句使得各数是上一行同列,和前一列两个数之和。同时使用for语句使得i(行数)自增(不超过10)。(4):定义一个a[3][80]的数组,找出字符中的英文大写字母,小写字母,数字,空格以及其他字符的个数(text[i][j]RA'&&text[i][j]<=,Z,)叩p++;text[i][j]>-a,&&text[i](j]<=,z,)low++;text[i][j]>='0,&&text[i][j]<-9')dig++;textfi]fj]==
5、,')spa++;elseoth++;则依次输出这些字符的个数四、源程序代码(1)#includeintmain(){inti,j,min,temp,a[l1];printf("enterdata:");for(i二1;i〈二10;i++){printfCa[%d]=^,i);scanf("%d",&a[i]);}printfC,z);printf("Theorginalnumbers:/z);for(i二l;i〈=10;i++)printf("%5d:a[i]);printf("
6、");for(i=l;i<=9;i++){min=i;for(j=i+l;j<=10;j++)if(a[min]>a[jj)min=j;temp=a[i];a[i]=a[min];a[min]=temp;}printfCThosortednumbers:");for(i=l;i<=10;i++)printf("%5d",a[i]);printf(〃rT);return0;}(2)#ineludeintmain(){inta[3][3],sum=0:inti,j;printf("enter
7、data:");for(i二0;i〈3;i++)for(j=0;j<3;j++)scanf("%3cT,&a[i][j]);for(i=0;i<3;i++)sum=sum+a[i][i];printf("sum=%6d",sum);return0;}(3)#includettdefineN10intmain(){inti,j,a[N][N];for(i=0;i<;i++)b[i][i]=l;a[i][0]二1;}for(i二2;iQ;i++)for(j=l;j<=i-l;j++)a[i]
8、[j]=a[i-l][j-l]+a[i-l][j];for(i=0;iintmain(){inti,j,upp,low,dig,spa,oth;charte