ImageVerifierCode 换一换
格式:DOCX , 页数:39 ,大小:75.10KB ,
资源ID:28778881      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/28778881.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言作业8.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言作业8.docx

1、C语言作业82. 集合排序(选做)成绩: 5 / 折扣: 0.8 现有若干个集合的数据,每个数据集合可以自选一个指标参加排序。这些指标包含如下四种: Min ,取集合中元素的最小值 Max ,取集合中元素的最大值 Mean ,取集合中元素的平均值,平均值的计算公式为: (V1+V2+Vn) / n Median ,取集合中元素的中值,中值的计算公式为: (Vmin+Vmax) / 2 读入数据后,请根据各个集合选择的指标对这些集合进行降序排列,每个集合内的元素请升序排列。 输入: 每行一个集合。 内为该集合选取的用于集合间排序的指标。随后为集合内各个元素,元素个数不定,以空格分隔。 若输入行的

2、第一个字符为“*”,则表示输入数据结束。输出: 每行输出一个集合。 内为计算出该集合的排序指标值,随后为该集合的各个元素的升序排列。测试输入期待的输出时间限制内存限制额外进程测试用例 1以文本方式显示 1.Max8315 2.Min910127 3.Median24 4.Mean302010 5.*以文本方式显示 1.20102030 2.153815 3.324 4.11279101秒 64M 0 测试用例 2以文本方式显示 1.Max1234492565763023 2.Mean1781349323256723322 3.Mean3123854352343227999 4.Max87686

3、11991233212344123292 5.Min99128353766 6.Median84431453 7.Median99999352266 8.Min43423255 9.Median0 10.*以文本方式显示 1.876861211993292123321234487686 2.5001735226699999 3.35762327318543599923432 4.325532554342 5.3440391223256576344 6.1881233232178322349567 7.7434384145 8.339537669128 9.001秒 64M 0 测试用例 3以文

4、本方式显示 1.Mean88888 2.*以文本方式显示 1.88888888881秒 64M 0 #include #include #include typedef struct line char type8; int typeValue; int data100; int n_data; line; int stringToInt(char str) int returnValue=0; int n=strlen(str); for(int i=0;istrlen(str);i+) returnValue=returnValue+(int)stri-48)*pow(10.0,-n);

5、return returnValue; void inputToLineData(line * l,char input) int n,i;/line length n=strlen(input); for(i=0;itypei=inputi+1; l-typei=0; l-n_data=0; int numStart=i+2; char str10010; int m=0,j=0; for(i=numStart;in_data+; else strjm+=inputi; strjm=0; l-n_data+; l-data0=0; for(i=0;in_data;i+) l-datai=st

6、ringToInt(stri); void sort(int data,int n) int i,j,k; for(i=0;in;i+) for( j=0;jdataj+1) k=dataj; dataj=dataj+1; dataj+1=k; int getTypevalue(line l) int i,j,k; if(strcmp(l.type,Max)=0) int Max; Max=l.data0; for(i=0;iMax) Max=l.datai; return Max; if(strcmp(l.type,Min)=0) int Min; Min=l.data0; for(i=0;

7、il.n_data;i+) if(l.dataiMin) Min=l.datai; return Min; if(strcmp(l.type,Median)=0) int Max; Max=l.data0; for(i=0;iMax) Max=l.datai; int Min; Min=l.data0; for(i=0;il.n_data;i+) if(l.dataiMin) Min=l.datai; return (Max+Min)/2; if(strcmp(l.type,Mean)=0) int sum=0; for(i=0;i1) inputToLineData(&Linei,input

8、); i+; while(strcmp(input,*)!=0); int amount=i; for(i=0;iamount;i+) sort(Linei.data,Linei.n_data); for(i=0;iamount;i+) Linei.typeValue=getTypevalue(Linei); line temp; for(i=0;iamount;i+) for(j=0;jamount-1;j+) if(Linej.typeValueLinej+1.typeValue) temp=Linej; Linej=Linej+1; Linej+1=temp; for(i=0;iamou

9、nt;i+) printf(%d,Linei.typeValue); for(j=0;jLinei.n_data;j+) if(jLinei.n_data-1) printf(%d ,Linei.dataj); else printf(%d,Linei.dataj); printf(n); 3. 二叉排序树(选做)成绩: 5 / 折扣: 0.8 撰写一个程序,能够构建字符串型的二叉排序树并在二叉排序树中查找节点。 所谓二叉排序树,简而言之,是一个每个节点可指向 0、1 或 2 个节点的递归的数据结构。最上层的一个节点称为树根。二叉排序树服从凡是比当前节点小的值都在其左下方,比当前节点大的值都在

10、其右下方的规律。该规律不仅适用于树的局部,也适用于整棵二叉排序树。 例如,在给定 Kiwi, Banana, Apple, Melon, Berry 的输入字符串的顺序下,以此构建二叉排序树的过程为:建树后,请根据给定的字符串,查找树中是否有该节点。若有,返回其节点在所在的层次数(根节点Kiwi的层次定义为0);若无,返回“Not Found”。输入: 每行一个字符串,作为要插入二叉排序树的值。若单独一个*字符占一行,则表明用于建树的字符串输入数据结束。随后以Search开始的若干行,代表要在树中查找某个字符串值,用于查找的字符串紧跟其后。若输入行的第一个字符为“#”,则表示输入数据结束。输出

11、: 输出每个要查找的值所在的层次数。测试输入期待的输出时间限制内存限制额外进程测试用例 1以文本方式显示 1.Kiwi 2.Banana 3.Apple 4.Melon 5.Berry 6.* 7.SearchBerry 8.SearchStrawberry 9.#以文本方式显示 1.Berry-2 2.Strawberry-NotFound1秒 64M 0 测试用例 2以文本方式显示 1.test 2.* 3.Searchtest 4.Searchtext 5.#以文本方式显示 1.test-0 2.text-NotFound1秒 64M 0 #include#include#include

12、struct node char date20; struct node *left; struct node *right; int floor;int flag=0;int f(struct node *p,char t) if(p=NULL) return 0; else if(strcmp(p-date,t)=0) printf(%s-%dn,t,p-floor); flag=1; else f(p-left,t); f(p-right,t); int main() struct node *p0,*pnew,*ptemp; p0=(struct node*) malloc (size

13、of (struct node); p0-left=NULL; p0-right=NULL; char temp40; gets(temp); strcpy(p0-date,temp); p0-floor=0; gets(temp); while(temp0!=*) pnew=(struct node*) malloc (sizeof (struct node); pnew-left=NULL; pnew-right=NULL; strcpy(pnew-date,temp); ptemp=p0; for(int i=1;i+) if(strcmp(temp,ptemp-date)0) if(p

14、temp-right=NULL) ptemp-right=pnew; pnew-floor=i; break; else ptemp=ptemp-right; else if(ptemp-left=NULL) ptemp-left=pnew; pnew-floor=i; break; else ptemp=ptemp-left; /for gets(temp); /while gets(temp); while(temp0!=#) char t40; strcpy(t,&temp8); flag=0; f(p0,t); if(flag=0) printf(%s-Not Foundn,t); g

15、ets(temp); 1. 配料员(选做)成绩: 5 / 折扣: 0.8背景: 你是一名室内装潢工程队的配料员。你的伙伴们在铺大理石地砖的时候,习惯于按照以下两种之字形的遍历顺序之一:学了 C 语言以后,你决定编写一个程序。无论你的伙伴们想要以何种遍历顺序铺设任何图案的任何大小的地砖方阵,你的程序都能正确地生成一个线性遍历序列,指示你每次该递给他们什么图案的地砖。输入: 首行为需要遍历的地砖矩阵的个数。第二行为第一个矩阵的维数(其中的 x 是小写字母 x,前后各有一个空格)。如果是一个 N 维的矩阵,则接下来的 N 行每一行为矩阵该行各列的元素,整型,以空格分隔,每一个整数代表一种基本图案的地

16、砖。随后的一行为该矩阵遍历的模式,只能为 TL-BR 或者 TR-BL 两者之一。若有多个矩阵,则从下一行起重复上述的输入模式。输出: 按顺序输出所需原料的编号。测试输入期待的输出时间限制内存限制额外进程测试用例 1以文本方式显示 1.1 2.4x4 3.1234 4.5678 5.1234 6.5678 7.TL-BR以文本方式显示 1.1,2,5,1,6,3,4,7,2,5,6,3,8,4,7,81秒 64M 0 测试用例 2以文本方式显示 1.2 2.4x1 3.1 4.2 5.3 6.4 7.TL-BR 8.4x1 9.1 10.2 11.3 12.4 13.TR-BL以文本方式显示

17、1.1,2,3,4 2.1,2,3,41秒 64M 0 测试用例 3以文本方式显示 1.2 2.1x1 3.0 4.TL-BR 5.1x1 6.5 7.TR-BL以文本方式显示 1.0 2.51秒 64M 0 #includeint x5050;void change(int *a,int *b) int temp; temp=*a; *a=*b; *b=temp;void fun(int a,int b) for(int i=0;ia;i+) for(int j=0;jb/2;j+) int temp; temp=xij; xij=xib-j-1; xib-j-1=temp; int mai

18、n() int n; scanf(%d,&n); while(n-!=0) for(int i=0;i50;i+) for(int j=0;j50;j+) xij=-1; int a,b; char tempchar6; scanf(%d %c %d,&a,&tempchar0,&b); /input for(int i=0;ia;i+) for(int j=0;jb?a:b; int i,j; max=max/2*2+1; printf(%d,x00); for(int p=1;p=0;i+,j-) if(xij!=-1) printf(,%d,xij); for(i=p+1,j=0;i=0

19、;i-,j+) if(xij!=-1) printf(,%d,xij); for(int p=1;pmax-1;p+=2) for(i=p,j=max-1;imax;i+,j-) if(xij!=-1) printf(,%d,xij); for(i=max-1,j=p+1;jmax;i-,j+) if(xij!=-1) printf(,%d,xij); printf(n); 50 猜猜我是谁成绩: 5 / 折扣: 0.8在指定的文本文件中包含了我需要的信息,请从指定文件中读取指定的行。如果文件中没有指定的行,则显示“Line No Error.”。如果文件不存在,则显示“ Error.”。输入

20、:第一行为要以只读方式打开的文本文件名第二行要读取的行号(从1开始)输出:文件中指定行号的内容(完整一行的内容)数据文件data1.txt 测试输入期待的输出时间限制内存限制额外进程测试用例 1以文本方式显示 1.data1.txt 2.2以文本方式显示 1.ThisisLine2.无限制 64M 0 测试用例 2以文本方式显示 1.data1.txt 2.1以文本方式显示 1.ThisisLine1.无限制 64M 0 测试用例 3以文本方式显示 1.data1.txt 2.10以文本方式显示 1.LineNoError.无限制 64M 0 测试用例 4以文本方式显示 1.data.txt

21、2.2以文本方式显示 1.Error.无限制 64M 0 #include#includeint main() FILE * pf; char name20; scanf(%s,name); pf=fopen(name,r); if(pf=NULL) printf( Error.n); exit(0); int n; scanf(%d,&n); char s20; while(n-) if(fgets(s,20,pf)=NULL) pf=NULL; break; if(pf=NULL) printf(Line No Error.n); else printf(%s,s);H18 恭喜发财 利是

22、窦来(选做)成绩: 5 / 折扣: 0.8在中国,过春节时人们有给孩子压岁钱(粤语称为利是)的习俗。最早的压岁钱出现于汉代,又叫压胜钱,并不在市面上流通,而是铸成钱币形式的玩赏物,有避邪的功能。钱币正面一般铸有“万岁千秋”、“去殃除凶”等吉祥话和龙凤、龟蛇、双鱼等吉祥图案。据说嘉兴府有一户姓管的人家,夫妻老年得子,十分珍爱。在年三十晚上,为防止“祟”来侵扰 一直逗孩子玩,小孩用红纸包了八枚铜钱,包了又拆,拆了又包,睡下以后,包着的八枚铜钱就放在枕边。半夜里,一阵阴风吹过,黑矮的小人正要用他的白手摸孩 子的头,突然孩子枕边迸出一道金光,祟尖叫着逃跑了。于是这件事传扬开来,大家纷纷效仿,在大年夜用

23、红纸包上钱给孩子,祟就不敢再来侵扰了。因而人们把这种钱叫“压祟钱”,“祟”及“岁”发音相同,日久天长,就被称为 “压岁钱”了。现在有 N 个人,他们都有小孩,春节来了,他们要发压岁钱给朋友的小孩,而他们自己的小孩也会收到压岁钱。为了简单,他们在发压岁钱的时候,使用以下的计算方法,譬 如某甲有 100 块,它要给另外三个人的小孩发压岁钱,则每个小孩会分到 100/3 = 33 块,剩余的 1 块就不发了。给你这 N 个人的信息,以及他们把压岁钱发给了谁的小孩,请你计算他们每个人的小孩收到的压岁钱和他们发出去的压岁钱的差额是多少。输入第 1 行: 一个整数 N(2 = N = 10)第 2.N+1 行: 每行是一个人名,每个名字不超过 14 个字符第 N+2.结束: N 组按照以下规则组织的数据:组中的第一行为送出压岁钱的人名。 第二行包括

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1