下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《C程序设计》之数组实验报告1/5实验项目:数组(二)实验内容:实验1:输入两个字符串A和B,判断字符串B是否在A中出现,如果出现,给出在A中出现的位置(即B串的第一个字符在A中第一次出现的位置,从一开始计)。示例:A串:abcabcdeabcdefgB串:abcde 结果:B串包含在A串中,位置是4实验2:输入10个人的姓名(拼音),用冒泡法排序,然后再用折半法查找给定的一个人名是否存在,如果存在给出位置。姓名示例:LongZhengji实验3:实现字符串联。程序实现:程序:实验1:字符串的包含关系#include<stdio.h>#include<string.h>voidmain(){charA[20],B[20];intn,m=0,i,j,a,b;printf("输入字符串A:");gets(A);printf("输入字符串B:");gets(B);a=strlen(A);b=strlen(B);printf("\n");for(i=0;i<=a-1;i++){n=1;if(A[i]==B[0]){n=0; for(j=1;j<=b-1;j++) if(A[i+j]!=B[j]) n++;} if(!n) {printf("B串包含在A串中,位置是%d\n",i+1); m++;}} if(m==0) printf("B串不在A串中\n");}实验2:输入10个人的姓名(拼音),用冒泡法排序,然后再用折半法查找给定的一个人名是否存在,如果存在给出位置。#include<stdio.h>#include<string.h>#defineN11voidmain(){chartemp[10],name[10];charc;charstr[N][20];inti,j,sign,top,bott,loca,flag=1,mid;printf("请输入10个人的名字:");printf("\n");for(i=0;i<11;i++)gets(str[i]);for(j=0;j<11;j++)for(i=0;i<10-j;i++)if(strcmp(str[i],str[i+1])>0){strcpy(temp,str[i]);strcpy(str[i],str[i+1]);strcpy(str[i+1],temp);}printf("对此10人的名字的排序为:\n");for(i=0;i<11;i++)printf("%s\n",str[i]);printf("\n");while(flag){ printf("要查找的名字:");scanf("%s",name);sign=0;top=0;bott=N-1;if(strcmp(name,str[0])<0||strcmp(name,str[N-1])>0)loca=-1;while((!sign)&&(top<=bott)){mid=(bott+top)/2;if(strcmp(name,str[mid])==0){loca=mid;printf("找到了:%s,位于:%d\n",name,loca+1);sign=1;}elseif(strcmp(name,str[mid])<0)bott=mid-1;elsetop=mid+1;}if(!sign||loca==-1)printf("没有此名\n");printf("是否继续(Y/N)?");scanf("%c",&c);if(c=='N'||c=='n')flag=0;}}实验3:实现字符串联:#include<stdio.h>voidmain(){chars1[80],s2[40];inti=0,j=0;printf("输入字符1:");scanf("%s",s1);printf("输入字符2:");scanf("%s",s2);while(s1[i]!='\0')i++;while(s2[j]!='\0')s1[i++]=s2[j++];s1[i]='\0';printf("串起来的字符是:%s\n",s1);}运行结果:实验1:字符串的包含关系B在A中:B不在A中:实验2:输入10个人的姓名(拼音),用冒泡法排序,然后再用折半法查找给定的一个人名是否存在,如果存在给出位置。实验3:实现字符串联:实验总结:加深了对字符的使用的掌握;进一步对数组的掌握;对与数组有关的算法如冒泡法排序、折半查找法的了解与应用。深刻体会编写程序前对程序的分析的重要,没有到位分析,编写程序只能是摸不到头脑,比如:在实验1中有用到strlen函数对两个字符串中的字符的统计,然后将第二个字符串中的每一个字符余地一个字符串的字符进行比较方可;实验2中有用到strcmp函数对两个字符串的比较,stcpy函数对字符串之间的交换等,还有字符型转化为整数型。总的来说,我觉得函数是程序的灵魂和关键所在。当然在编写程序的过程中一些错误还是难以避免,如:分号的多写或少写、大括号的范围、书写的转换等等。在实验2中遇到这样的情况:在输入名字的时候中间有空格符的时候如:会使结果为:。对这一问题我还是没想清楚为什么,看来空格符在字符中的影响非常的大,作用不可忽略,而我就犯了这样的错误。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论