《2023年新版C语言实验报告数组.docx》由会员分享,可在线阅读,更多相关《2023年新版C语言实验报告数组.docx(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C语言实验报告实验名称专业姓名学号班级指导老师实验七数组1 .实验目的(1)纯熟掌握一维数组、二维数组的定义、初始化和输入/输出方法;(2)纯熟掌握字符数组和字符串函数的使用;(3)掌握与数组有关的常用算法(如查找、排序等)。2 .实验指导(1)对任意一个一维型数组,从中找出数组元素的最大值和最小值并输出。规定:数组有十个元素;使用scan f函数实现数组元素的输入前给出必要的提醒;输出时,一方面输出数组的十个元素,然后输出其最大值和最小值。分析指导:算法分析:一方面定义一个数组,通过循环从键盘输入十个数组元素的值,再通过另一个循环判断数组元素的最大只和最小值;根据分析情况编写程序:# in
2、c lud e main () i n t a10, i, max, min;输入一个数4,输入一个4*4的数组36 71 45813 5 72 697运营程序如下:再次输入一个数字3,输入一个3*3的数组运营程序如下:|c *C:JMSOFTCYuYanvclyProjects005Debug006.exe-please inpute n of natrix: please inpute elements of natrix:L 2 34 52 7 8Result matrix:378245123Press any key to continue.3实验结论。通过本次实验纯熟的掌握一维数组、
3、二维数组的定义、初始化和输入/输出方法以及字符数组和字符串函数的使用,尚有就是掌握与数组有关的常用算法printf(please inpu t ten integers:);f or(i=0 ; iV = 9;i+)(sc a nf (%d, & a i );max=aO;m i n = a 0;f o r ( i = 1; im a x)in a x= a i ;if (aimin)min=a i ;)f or(i=0 ; i Fileslicrosoft Visual StudiolyProjects001Debug001.exe-nix-nixplease input ten integ
4、ers:21 37 6 17 9 12 89 76 35 59 a0J=-858993460aLl =21a 2 =37 at3=6 a4-17a(5J=9at6-12 at?=89 a18=76a(9J=35The naxinun value is 89,and the minimum value is -858993460Press any key to continue(2)编写函数cmpStr(ch a r s 1 , c har s 2 口)比较两个字符串s1 和s2的大小。假如s1s2,返回一个正数;s 1 =s2,返回0;s1Vs2,返回 一个负数,在主函数中调用该函数完毕字符串
5、的比较操作,并输出返回的 值。规定:不允许使用s t r cmp()函数;用g ets ()函数在主函数中输入两个字符串;实现触摸屏受托人()函数,返回的正数或负数的绝对值应当是进行比较的两 个字符传中相应字符的AS CII码的差值。分析指导:算法分析:两个字符串从第一个字符开始一一相应进行比较,直到不相等的那 个字符,从而求得它们的ASCII码的差值。比如,A与C相比,由于 A C ,应输出负数,由于R 与C 的ASCI I码的差值为2,因此, 应输出“-2”。同理,“And”和“A i d”比较,根据第二个字符比较结果, 比T 大5,因此应输出5;根据分析情况编写程序:#in c lude
6、in t cmpst r (char si 口,char s 2 )(i n t i, dif f ;i=0;owh ile( ( s li=s2i )&(s 1 i ! = 0) i+;if (s 1 i =, 0* &s2i = = 0)o diff=O;els e。d i ff=sli-s2 i;ret urn cliff;void main ()(o i nt z;oc ha r s l100,s2 1 00;pr i n t f (,z i n put the f irst string:);。/输入字符串1e ts (si);p r intf ( input these cond
7、strin g :);。/输入字符串2get s (s2);z=cmpstr(si, s2);。/输出比较结果叩 ri n t f (the d i fferenc e be twee n two str ing s i s % d查看运营结果如下:Visual StudioMyPro ject s004Debug004. exe”叵“:Progra FilesMicrosoftinput the first string:loue input the second string:life the difference between two strings is 6 press any ke
8、y to continue重新输入两个字符串me e t, mo o d运营结果如下:c C:PrograB FilesMicrosoft Visual StudioMyProjects004Debug004. eze* | )input the first string:neetinput the second string:moodthe difference between two strings is _10Press any key to continue(3)再给定的字符串中查找指定的字符。规定:字符串采用直接初始化的方式解决;通过scanf函数读入一个任意字符;在字符串中查找该字
9、符,假如存在该字符,输出该字符在字符串中的一次出现 的位置,假如再给定的字符串中不存在该字符,则给出相应的说明信息。#inclu d evoid main ()int i;ch a r c h ;char s= program ”;叩rinlf(输入一个英文字母:);s c anf( 0 % c ,&ch);for(i=0; s i! =0;i+ + )(,if (si =ch)break;)i f(i7)p r intf (M s l%d=%cnn,i,c h ); elsepr i ntf ( No fou n de d n);)输入一个英文字母0运营程序如下:c CiXJISOFTXCY
10、uYanXvcXIyProjectsXOaXDebugXOa. exe*st3=oPress any key to continue再次输入一个英文字母w运营程序如下:c wC:JIS0FTCYuYanvcIyProjects005Debug005.exe*Mo foundedPress any key to continue.(4) 一方面输入一个大于二且小于十的整数n,然后定义一个二维 整型数组(n*n),初始化该数组,讲述组中最大元素所在的行和 最小元素所在的行对调。规定:n *n数组元素的值由s c anf函数从键盘输入(假定最大值最小值不在同一行上),然后输出该数组;查找最大值最小值
11、所在的行,将数组中最大元素所在的行和最小元素所在的行对调,并输出对调后的数组;为直观起见,数组按n行n列的方式输出;修改程序,对最大值与最小值也许出现在一行种的情况进行解决。#includcmain。(。1 o ng matrix 9 9,mi n ,max,t e mp;o i n t i,j,n,nMa x =0,nMin = 0;p r i nt f (unplea s e i n p ut e n o f mat r ix:n ); scanf(%d , &n);o pri n t f( nplcasc input e c 1 c m e n ts o f m a trix(%d *
12、%d) :nH,n, n );。for(i = 0;in; i+)。a for(j=O; j n ;j+)scan f (%ld”,&m a t r ix i j);。min= max =matrix 0 0;o f O r(i= 0 ;in;i+)fo r (j=O;j max)。ma x =mat r ix i j;6。nMax=i;0000 3 e Ise if ( m atrix i j mi n) 0。 o min = mat r ix i j;3。 n Min=j;o 0fo r ( j =0; j n ;j + +) t emp=ma t rix n Max j;matrix n Maxj=ma t r i x | n Min j;0 mat r i x nMin j= t cmp;)0 pri n t f( n R e sul t matrix:nH);fbr(i= 0 ; i n; i +) fo r (j =O;jn;j+)。 p r i ntf(n%51 d , m a tri x i j);。p r int f (n );