c语言实验报告第五章.doc

上传人:PIYPING 文档编号:10612865 上传时间:2021-05-26 格式:DOC 页数:25 大小:2.85MB
返回 下载 相关 举报
c语言实验报告第五章.doc_第1页
第1页 / 共25页
c语言实验报告第五章.doc_第2页
第2页 / 共25页
c语言实验报告第五章.doc_第3页
第3页 / 共25页
c语言实验报告第五章.doc_第4页
第4页 / 共25页
c语言实验报告第五章.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《c语言实验报告第五章.doc》由会员分享,可在线阅读,更多相关《c语言实验报告第五章.doc(25页珍藏版)》请在三一文库上搜索。

1、实 验 报 告课程名称 _ C语言程序设计_实验项目 _数组(1)_实验仪器 _计算机_系 别_信息与通信工程学院_专 业_通信_班级/学号_学生姓名 _ _ 实验日期 _2013年06月19日_成 绩 _ 指导教师 _李文杰_一、 实验目的1、 掌握一维数组的定义及初始化。2、 掌握一维数组元素的引用及其应用。3、 掌握一维数组的常见算法:遍历,查找算法(顺序,折半),排序算法,插入算法,删除算法。二、 实验内容1. 描述津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。 但是津津如果一天上课超过八

2、个小时就会不高兴,而且,上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴。如果会的话,哪天最不高兴。输入输入数据有多组,第一行包含一个整数T,表示有T组数据。每组输入包括七行数据,分别表示周一到周日的日程安排。每行包括两个小于10的非负整数,用空格隔开,分别表示津津在学校上课的时间和妈妈安排她上课的时间。输出输出包括一行,这一行只包含一个数字。如果不会不高兴则输出0,如果会则输出最不高兴的是周几(用1,2,3,4,5,6,7分别表示周一,周二,周三,周四,周五,周六,周日)。如果有两天或两天以上不高兴

3、的程度相当,则输出时间最靠前的天。样例输入153627253540406样例输出3程序代码:# include stdio.h int main() int a10000; int n, r; int i, ii, tt; char c; int k, maxm; a0=0; scanf (%d,&n); for (tt=1;tt=n;tt+) k=0; maxm=0; for (i=1;i8) k+; if(amaxmr) maxm=i; if (k=0) printf (0); else printf (%d,maxm); printf (n); return 0; 2、描述某公司邀请40

4、个顾客参加投票活动,选举他们最喜爱的产品,以决定公司今后的销售策略。共有编号为1号10号的10个产品,每人只能选择一个产品。编写程序,在整数数组中设置这40个值(投票情况),然后统计投票结果(每一个产品的得票数目)。输入40个数值在110(含1和10)之间的整数输出如下所示:样例输入111112333334455556666666677777888889991010样例输出如上图所示提示表头汉字之间用1个空格分隔。表体各列之间用5个空格分隔。程序代码:#include stdio.h int main() int a40,i,b10=0,j; for(i=0;i40;i+) scanf(%d,

5、&ai); printf( n); for(i=0;i40;i+) bai-1+; for(i=0;i10;i+) printf(%d %d ,i+1,bi); for(j=1;j=bi;j+) printf(*); printf(n); return 0; 3、描述有n个(n=40)学生,现要统计这n个学生一次考试中不及格的人数输入有两行,第一行为整数n;第二行为n个整数成绩(100(含)以内)输出一个整数,表示n个成绩中低于60分的个数样例输入59045678056样例输出2程序代码:#include stdio.h int main() int a40,i,n,k=0;scanf(%d,

6、&n);for(i=0;in;i+)scanf(%d,&ai);for(i=0;in;i+)if(ai60)k+;printf(%d,k);return 0; 4、描述有一个长度为n的整数序列。请写一个程序,把序列中的最小值与第一个数交换,最大值与最后一个数交换。输出转换好的序列。 输入输入包括两行。 第一行为正整数n(1n10)。 第二行为n个正整数组成的序列。输出输出转换好的序列。数据之间用一个空格隔开。样例输入531542 样例输出13245 提示注意输出时,每个数据后都有一个空格,包括最后一个数据。程序代码:# include stdio.h # include math.h int

7、a100; int b; void hanshu(int c,int d) b=ad; ad=ac; ac=b; int main(void) a50=888888; int i,k,n,max=0,min=50; scanf(%d,&n); for(i=1;iamax) max=i; if(aiamin) min=i; hanshu(1,min); hanshu(n,max); for(i=1;i=n;i+) printf(%d ,ai); printf(n ); return 0; 5、描述有n个整数,使其最后m个数变成最前面的m个数,其他各数顺序向后移m(mn100)个位置。 输入输入数

8、据有2行,第一行的第一个数为n,后面是n个整数,第二行整数m。输出按先后顺序输出n个整数。样例输入5123452样例输出45123程序代码:# include stdio.h int main()int a100,i,n,m;scanf(%d,&n);for(i=0;in;i+)scanf(%d,&ai);scanf(%d,&m);for(i=n-m;in;i+)printf(%d ,ai);for(i=0;in-m;i+)printf(%d ,ai);return 0; 6、描述有n(n=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数m,请将该数插入到序列中,并使新的序列仍然

9、有序。 输入输入数据包含多个测试实例,每组数据由两行组成,第一行是n和m,第二行是已经有序的n个数的数列。n和m同时为0标示输入数据的结束,本行不做处理。输出对于每个测试实例,输出插入新的元素后的数列。样例输入3312400样例输出1234 提示输出的数据每个后面有一个空格。程序代码:#include stdio.h #include math.h int main() int a100; int k; int n, m, i; scanf(%d%d,&n,&m); while(n!=0 & m!=0) k=0; for(i=1;i=n;i+) scanf(%d,&ai); for (i=1;

10、 i=m & ai-1=m & k=0) printf(%d ,m);k=1; printf(%d ,ai); if(k=0) printf(%d,m); printf(n); scanf(%d%d,&n,&m); return 0; 7. 描述已知元素从小到大排列的两个数组x和y,请写出一个程序算出两个数组彼此之间差的绝对值中最小的一个,这叫做数组的距离。 输入第一行为两个整数m, n(1m, n1000),分别代表数组f, g的长度。 第二行有m个元素,为数组f。 第三行有n个元素,为数组g。输出数组的最短距离样例输入5512345678910样例输出1程序代码:#include stdi

11、o.h #include math.h int main() int f10000; int g10000; int minn1,minn2; int n, m, i, j; minn1=minn2=9999999; scanf(%d%d,&n,&m); for(i=1;i=n;i+) scanf(%d,&fi); for (i=1;i=m;i+) scanf(%d,&gi); for(i=1;i=n;i+) for(j=1;j=m;j+) if (abs(fi-gj)=a&ai=A&ai=Z)printf(%c,ai);i+;printf(n);return 0;9. 描述从键盘输入一行字符

12、,统计其中单词的个数,各单词以空格分隔,且空格数可以是多个。 输入输入只有一行句子。仅有空格和英文字母构成。输出单词的个数。样例输入stablemarriageproblemConsistsof Matchingmembers样例输出7程序代码:#include stdio.h int main() char c1000;int i=0; while(scanf(%s,&c)=1) i+; printf(%d,i); return 0; 10. 描述把一个字符串里所有的大写字母换成小写字母,小写字母换成大写字母。其他字符保持不变。输入输入为一行字符串,其中不含空格。长度不超过80个字符。输出输

13、出转换好的字符串。样例输入ABCDefgh123样例输出abcdEFGH123程序代码:# include int main() char c1000;int i=0; scanf(%s,&c); while(ci!=0) if(ci=65&ci=97&ci=122) printf(%c,ci-32); else printf(%c,ci); i+; return 0; 11. 描述读入N名学生的成绩,将获得某一给定分数的学生人数输出。 输入测试输入包含若干测试用例,每个测试用例的格式为第1行:N第2行:N名学生的成绩,相邻两数字用一个空格间隔。第3行:给定分数当读到N=0时输入结束。其中N不

14、超过1000,成绩分数为(包含)0到100之间的一个整数。输出对每个测试用例,将获得给定分数的学生人数输出(每行一个输出结果)。样例输入38060906028566056075905575750样例输出102程序代码:# include int main() int c1000; int i, n, m, num; while(scanf(%d, &n)=1) if(n=0)break;num=0; for(i=1;i=n;i+) scanf(%d,&ci); scanf(%d, &m); for(i=1;i=n;i+) if(ci=m) num+; printf(%dn,num); retu

15、rn 0; 12. 描述编写一个进制转换函数,可以把一个十进制数N,转换成R进制数。使用该函数完成对输入的一个十进制数及一个要转换的进制,输出转换结果。输入输入数据包含多个测试实例,每个测试实例包含两个整数N(=32bit整数)和R(2=R=16, R10)。输出为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。样例输入722312-43样例输出1111B-11程序代码:# include int main() int a10000; int n, r; int i, j; char c; while(scanf(%d%d,&n,&r)=2) i=0; if(n=1;j-) if(aj10) printf(%d,aj); else c=aj+55; printf(%c,c); printf(n); return 0; 三、 实验体会通过这次试验,我掌握了一维数组,二维数组的定义。并掌握了一维数组,二维数组,字符数组,数组作为函数的参数。不足之处是数组常见算法,例如排序算法,插入算法等的运用不是很熟练。最后,在学习到知识的同时,我对C程序的精密和美感有了更深的体会,第五章的学习使我更加爱上了独特的计算机语言。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1