c语言实验四报告,湖北理工学院14本科C语言实验报告实验四数组

253b171540df25e1b84436cbe50dfc72.gif湖北理工学院14本科C语言实验报告实验四 数组.doc

实验四 数 组实验课程名C语言程序设计专业班级 14电气工程2班 学号 201440210237 姓名 熊帆 实验时间 5.12-5.26 实验地点 K4-208 指导教师 祁文青 一、实验目的和要求1. 掌握一维数组和二维数组的定义、赋值和输入输出的方法;2. 掌握字符数组和字符串函数的使用;3. 掌握与数组有关的算法(特别是排序算法)。二、实验内容1. 调试下列程序,使之具有如下功能输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。写出调试过程。include stdio.hdefine N 10void main int i,aN,av;fori0;iN;i scanfd,ai;fori0;iN;i printfd,ai; ifi30 printfn;fori0;iN;iavai;printfavfn,av;解答(1) 源代码 includestdio.hdefine N 10void mainint i,aN;float av0;fori0;iN;iscanfd, printfn;fori0;iN;iprintf3d,ai;ifi130printfn;fori0;iN;iavai;printfn;avav/N;printfn;printfavfn,av;(2)运行结果 (3) 运行结果分析原程序中有若干处错误,分别为av这个变量应该定义为float型,scanf语句中输入数组的时候,在它前面应该加上地址符 scanfd,d,d,d,d, a ; for i 0; i 4; i sum ai; printfsum d n, sum;该程序中有哪些错误如何修改写出正确运行后的结果。解答(1) 源代码includestdio.hvoid mainint i,a5,sum0;fori0;i4;iscanfd,fori0;i4;isumai;printfsumdn,sum;(2) 运行结果 (3) 运行结果分析原程序中的scanf语句是错的,应该采用for语句循环输入,还要把a换成ai,并在前面加上地址符static int a34 1,2,3,4, 9,8,7,6, -10,10,-5,2; printf Max d, Row d, Colum d n, max, row, colum;解答(1) 源代码includestdio.hvoid mainint i,j,row,colum,max;static int a34 1,2,3,4, 9,8,7,6, -10,10,-5,2; maxa00;fori0;i3;iforj0;j4;jifmaxaijmaxaij;rowi1; columj1;printfMaxd,Rowd,Columdn,max,row,colum;(2) 运行结果 (3) 运行结果分析应该对原本不完整的程序作这样的补充,加上两个for循环语句,以实现找出数组中最大的元素。并用row和column分别储存行标和列标,但要注意1。4. 数组中已存互不相同的10个整数,从键盘输入一个整数,输出与该值相同的数组元素下标。解答(1) 源代码 includestdio.hvoid main int i,x,a101,2,3,4,5,6,7,8,9,10; scanfd, fori0;i10;i printf4d,ai; printfn; fori0;i10;i ifxai break; ifi10 printf该元素的下标为dn,i; else printf该数组中没有 dn,x;(2) 运行结果 (3) 运行结果分析数组中已存互不相同的10个整数1,2,3,4,5,6,7,8,9,10。验证程序的时候分别输入了7和19,并且正确地输出了下标或输出结果。如上面两张图所示。5. 编写程序,任意输入10个整数的数列,先将整数按照从大到小的顺序进行排序,然后输入一个整数插入到数列中,使数列保持从大到小的顺序。解答(1) 源代码includestdio.hvoid mainint a11,i,j,x,temp;printf请输入10个整数n;fori0;i10;iscanfd,forj0;j9;jfori0;i9-j;iifaiai1排序,交换tempai1;ai1ai;aitemp;fori0;i10;iprintfd ,ai;printfn;printf请再输入一个整数;scanfd,fori0,j0;i10;iifaixxai1ji;break;elsecontinue;fori0;ij1;iprintfd ,ai;输出插入点前的数字tempaj1; aj1x;printfd ,aj1;输出插入点的数字aj1temp;fori0;i9-j;i移位交换a10-ia9-i;fori0;i9-j;iprintfd ,aij2;输出插入点后的数字printfn;(2)运行结果 (3)运行结果分析运行程序时输入了这样10个整数6 11 9 15 68 23 2 32 50 28。经过程序中排序部分的作用,将10个整数按从大到小的顺序排序为68 50 32 28 23 15 11 9 6 2。和预期是一致的,再输入一个数,以26为例,26位于28和23之间,于是按照程序变插入到28和23之间,最后输出68 50 32 28 26 23 15 11 9 6 26. 输入十个互不相同的整数并存在数组中,找出最大元素,并删除。解答(1) 源代码includestdio.hvoid mainint a10,i,m,t,n;printf输入十个互不相同的整数n;fori0;i10;iscanfd,na0;printf删除其中最大的数之后n;fori1;i10;iifnainai;mi;tm;forim;i9;iaiai1;a9t;fori0;i9;iprintfd ,ai;printfn;(2)运行结果 (3) 运行结果分析在运行程序的时候,输入了如图所示的十个不同的整数,经过程序的执行,删除其中最大的数97,再将剩下的9个数输出来。7. 以下程序的功能是从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空include stdio.hvoid main float x1000, sum0.0, ave, a; int n0, i; printf Enter mark n ; scanff, while a0.0 n1000 sum ; xn ; n; scanff, ave ; printf Output n; printf ave fn, ave; for i0; in; i if printffn, xi;解答(1) 源代码includestdio.hvoid mainfloat x1000,sum0.0,ave,a;int n0,i;printfEnter mark n ;scanff, whilea0.0n1000 suma; xna;n; scanff, avesum/n;printf Output n;printf ave fn, ave; fori0;in;i if xiave printffn,xi;(2)运行结果 (3) 运行结果分析运行程序的时候输入了如上图所示的10个分数,根据while语句中的内容,故可以把-1作为输入结束的标志。接下来再作相应的运算,结果均与事实相符。8. 综合编程题打印如下杨辉三角形1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 解答(1) 源代码includestdio.hvoid mainint a66,i,j;fori0;i6;iforj0;ji;jifi1aij1;elseifjij0aij1;ifj0ijaijai-1j-1ai-1j;printf下面的是杨辉三角形n;fori0;i6;iforj0;ji;jprintf4d,aij;printfn; (2)运行结果 (3) 运行结果分析运用二维数组的定义和for循环来实现输出杨辉三角形。9. 调试下列程序,使之具有如下功能任意输入两个字符串如“abc 123”和“china”,并存放在a,b两个数组中。然后把较短的字符串放在a数组,较长的字符串放在b数组。并输出。include stdio.hinclude string.h void main char a10,b10; int c,d,k,ch; scanfs, scanfs, printfas,bsn,a,b; cstrlena; dstrlenb; ifcd fork0;kd;k chak;akbk;bkch; printfasn,a; printfbsn,b; 解答(1) 源代码 include stdio.hinclude string.h void main char a10,b10; int c,d,k,ch; scanfs, scanfs, printfas,bsn,a,b; cstrlena; dstrlenb; ifcd fork0;kc;k chak; akbk; bkch; bk0; printfasn,a; printfbsn,b;(2)运行结果 (3) 运行结果分析原程序中,应该把for语句中的kd改为kc,再就是在输出最终结果之前可令bk0,以避免输出结果中出现乱码的情况。运行程序的时候,输入a为一个较长的字符串,b较短,然后二者会进行交换,输出结果如上图所示。10. 阅读下面的程序,然后回答后面的问题include stdio.hinclude string.h void main char s180, s240; int i 0, j 0; printf n Please string1; scanfs, s1; printf n Please string2; scanfs, s2; while s1i 0 i; while s2j 0 s1is2j ; s1i 0; printfn New string s, s1;编辑、运行该程序,然后分别输入Country 和side。请问程序执行的结果是什么输出Countryside该程序的功能是什么将第二个字符串连接到第一个字符串的后面从而组成一个新的字符串解答(1) 源代码include stdio.hinclude string.h void main char s180, s240; int i 0, j 0; printf n Please string1; scanfs, s1; printf n Please string2; scanfs, s2; while s1i 0 i; while s2j 0 s1is2j ; s1i 0; printfn New string s, s1; printfn;(2)运行结果 (3) 运行结果分析运行程序的时候先输入Country,再输side,经过程序的运行,实现了将side连接到Country的后面形成新的单词Countryside,即实现了将第二个字符串连接到第一个字符串的后面从而组成一个新的字符串的功能。11. 填空完成下面程序,使其功能是对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。例如输入的两个字符串分别为abcdefg和abceef,则输出为-1。程序如下 include stdio.h void main char str1100,str2100; int i,s; printfn string 1n;getsstr1; printf“n string 2n”;getsstr2; i 1 ; whilestr1istr2istr1i 2 i; s 3 ; printfdn,s; 解答(1) 源代码includestdio.h void main char str1100,str2100; int i,s; printfn string 1n;getsstr1; printfn string 2n;getsstr2; i0; whilestr1istr2istr1i0 i; sstr1i-str2i; printfdn,s;(2)运行结果 (3) 运行结果分析运行程序时先输入hey boys,再输入hey girls,两个字符串中第一个不相同字符分别为b和g,ASCII码值相差-5,与事实相符。12. 填空完成下面程序,使其的功能是统计从终端输入字符中每个大写字母的个数。用号作为输入结束标志。程序如下 include stdio.h include ctype.h void main int num26,i; char c; for i0;i26;i numi0; while (1) /* 统计从终端输入的大写字母个数*/ if isupperc numc-65 (2) ; for i0;i26;i /* 输出大写字母和该字母的个数*/ if numiprintfcdn,i (3) ,numi; 解答(1) 源代码includestdio.hincludectype.hvoid main int num26,i; char c; fori0;i26;i numi0; whilecgetchar ifisupperc numc-651; fori0;i26;i ifnumiprintfcdn,i65,numi;(2)运行结果 (3) 运行结果分析运行程序的时候输入的字符串为CYUYANCNA,经过程序的运行,统计出的个字母的数量与事实是相符的。13. 编写程序,输入若干个字符串,求出每个字符串的长度,并打印最长一个字符串的内容。以“stop”作为输入的最后一个字符串。解答(1) 源代码 includestdio.h includestring.h void mainchar a2020;int i0,t0,b,c;printf请输入字符串吧n;while1scanfs,ai;bstrlenai;printf3d,b;iftbtb;ci; ifai0s ai1t ai2o ai3p ai40break;i;printfn;printf最长的是sn,ac; (2)运行结果 (3) 运行结果分析我输入了一个英语句子,程序统计出来了各个单词的字母数,并且指出了最长的单词tomorrow,与事实是一致的。14.编写程序,输入字符串s1和s2以及插入位置f,在字符串s1中的指定位置f处插入字符串s2。如输入BEIJING、123和位置3,则输出BEI123JING123。解答(1) 源代码includestdio.hincludestring.hvoid mainchar s120,s220,t120,t220;int i,j,n,f;printf请输入n;scanfssd,s1,s2,nstrlens1;fori0;if;it1is1i;t1i0;strcatt1,s2;forj0;jn-f;jt2js1i;i;t2j0;strcatt1,t2;strcatt1,s2;printfsn,t1;(2)运行结果 三、结论(写本次实验的收获)本次实验主要涉及数组与for循环语句的使用,从中可以体会到对for语句的灵活运用非常高。而且要注意数组的输入输出问题,以及字符串数组及相关的函数的使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/388535.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

rabbitmq channel参数详解【转】

1、Channel 1.1 channel.exchangeDeclare(): type:有direct、fanout、topic三种durable:true、false true:服务器重启会保留下来Exchange。警告:仅设置此选项,不代表消息持久化。即不保证重启后消息还在。原…

nlp gpt论文_GPT-3:NLP镇的最新动态

nlp gpt论文什么是GPT-3? (What is GPT-3?) The launch of Open AI’s 3rd generation of the pre-trained language model, GPT-3 (Generative Pre-training Transformer) has got the data science fraternity buzzing with excitement!Open AI的第三代预训练语言…

真实不装| 阿里巴巴新人上路指北

新手上路,总想听听前辈们分享他们走过的路。橙子选取了阿里巴巴合伙人逍遥子(阿里巴巴集团CEO) 、Eric(蚂蚁金服董事长兼CEO)、Judy(阿里巴巴集团CPO)的几段分享,他们是如何看待职场…

小程序学习总结

上个周末抽空了解了一下小程序,现在将所学所感记录以便日后翻看;需要指出的是我就粗略过了下小程序的api了解了下小程序的开发流程以及工具的使用,然后写了一个小程序的demo;在我看来,如果有前端基础学习小程序无异于锦上添花了,而我这个三年的码农虽也写过不少前端代码但离专业…

uber 数据可视化_使用R探索您在Uber上的活动:如何分析和可视化您的个人数据历史记录

uber 数据可视化Perhaps, dear reader, you are too young to remember that before, the only way to request a particular transport service such as a taxi was to raise a hand to make a signal to an available driver, who upon seeing you would stop if he was not …

java B2B2C springmvc mybatis电子商城系统(四)Ribbon

2019独角兽企业重金招聘Python工程师标准>>> 一:Ribbon是什么? Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如…

基于plotly数据可视化_[Plotly + Datashader]可视化大型地理空间数据集

基于plotly数据可视化简介(我们将创建的内容): (Introduction (what we’ll create):) Unlike the previous tutorials in this map-based visualization series, we will be dealing with a very large dataset in this tutorial (about 2GB of lat, lon coordinat…

Centos用户和用户组管理

inux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。1、添加新的用户账号使用useradd命令,其语法如下:useradd 选项 用户名-…

划痕实验 迁移面积自动统计_从Jupyter迁移到合作实验室

划痕实验 迁移面积自动统计If you want to use Google Colaboratory to perform your data analysis, for building data pipelines and data visualizations, here is the beginners’ guide to migrate from one tool to the other.如果您想使用Google Colaboratory进行数据分…

数据开放 数据集_除开放式清洗之外:叙述是开放数据门户的未来吗?

数据开放 数据集There is growing consensus in the open data community that the mere release of open data — that is data that can be freely accessed, remixed, and redistributed — is not enough to realize the full potential of openness. Successful open data…

ios android 交互 区别,很多人不承认:iOS的返回交互,对比Android就是反人类。

宁之的奥义2020-09-21 10:54:39点灭只看此人举报给你解答:美国人都是左撇子,所以他们很方便🐶给你解答:美国人都是左撇子,所以他们很方便🐶亮了(504)回复查看评论(19)回忆的褶皱楼主2020-09-21 11:01:01点灭…

Servlet+JSP

需要说明的是,其实工具的版本不是主要因素,所以我下面忽略版本。 你能搜到这篇文章,说明你已经知道怎么部署Tomcat,并运行自己的网页了。 但是,我们知道,每次修改源文件,我们总得手工把文件co…

正态分布高斯分布泊松分布_正态分布:将数据转换为高斯分布

正态分布高斯分布泊松分布For detailed implementation in python check my GitHub repository.有关在python中的详细实现,请查看我的GitHub存储库。 介绍 (Introduction) Some machine learning model like linear and logistic regression assumes a Gaussian di…

BABOK - 开篇:业务分析知识体系介绍

本文更新版已挪至 http://www.zhoujingen.cn/itbang/328.html ---------------------------------------------- 当我们作项目时,下面这张图很多人都明白,从计划、构建、测试、部署实施后发现提供的方案并不能真正解决用户的问题,那么我们是…

黑苹果 wifi android,动动手指零负担让你的黑苹果连上Wifi

动动手指零负担让你的黑苹果连上Wifi2019-12-02 10:08:485点赞36收藏4评论购买理由黑苹果Wifi是个头疼的问题,高“贵”的原机Wifi蓝牙很贵,比如我最近偶然得到的BCM94360CS2,估计要180。稍微便宜的一点的,搞各种ID,各种…

float在html语言中的用法,float属性值包括

html中不属于float常用属性值的是float常用的值就三个:left\right\none。没有其他的值了。 其中none这个值是默认的,所以一般不用写。css中float属性有几种用法?值 描述left 元素向左浮动。 right 元素向右浮动。 none 默认值。元素不浮动,并…

它们是什么以及为什么我们不需要它们

Once in a while, when reading papers in the Reinforcement Learning domain, you may stumble across mysterious-sounding phrases such as ‘we deal with a filtered probability space’, ‘the expected value is conditional on a filtration’ or ‘the decision-mak…

LoadRunner8.1破解汉化过程

LR8.1版本已经将7.8和8.0中通用的license封了,因此目前无法使用LR8.1版本,包括该版本的中文补丁。 破解思路:由于软件的加密程序和运行的主程序是分开的,因此可以使用7.8的加密程序覆盖8.1中的加密程序,这样老的7.8和…

TCP/IP网络编程之基于TCP的服务端/客户端(二)

回声客户端问题 上一章TCP/IP网络编程之基于TCP的服务端/客户端(一)中,我们解释了回声客户端所存在的问题,那么单单是客户端的问题,服务端没有任何问题?是的,服务端没有问题,现在先让…

谈谈iOS获取调用链

本文由云社区发表iOS开发过程中难免会遇到卡顿等性能问题或者死锁之类的问题,此时如果有调用堆栈将对解决问题很有帮助。那么在应用中如何来实时获取函数的调用堆栈呢?本文参考了网上的一些博文,讲述了使用mach thread的方式来获取调用栈的步…