C语言编程大作业.doc

上传人:asd****56 文档编号:70343890 上传时间:2023-01-19 格式:DOC 页数:8 大小:60KB
返回 下载 相关 举报
C语言编程大作业.doc_第1页
第1页 / 共8页
C语言编程大作业.doc_第2页
第2页 / 共8页
点击查看更多>>
资源描述

《C语言编程大作业.doc》由会员分享,可在线阅读,更多相关《C语言编程大作业.doc(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、利用main函数的参数选择是对整数进行操作还是对字符串进行操作:Handle int - 一、整数操作Handle string - 二、字符串操作一、 整数操作(含有50个正整数(=3位)的文件:int_input,输入1,2,3,4分别选择不同的操作)1. 排序(结果存到文件int_output1)2. 求中间两个数的最大公因数和最小公倍数3. 统计素数的个数4. 统计同构数的个数(同构数是指:它出现在它的平方数的右边),如5是其平方数25的尾数,76是其平方数5776的尾部二、 字符串操作(含有50个字符串的文件:string_input,输入1,2,3,4分别选择不同的操作)1. 排序

2、(结果存到文件string_output1)2. 实现每个字符串的逆置,前25个用递归,后25个用非递归(结果存到文件string_output2)3. 统计单词”hello”出现的次数。 如某一行:ghhello32he,该行次数为14. 在最小串中出现,而未在最大串中出现的字符形成一个新的串放在u中,u中字符按原字符串中字符顺序排列,不去掉重复字符。例如: 当min = 112345, max = 2467时, u中的字符串为1135。源代码:#include#include#include#include#define N 50int ReadFile_Num(int*);void Wr

3、iteFile_Num(char* FileName,int*,int);void sort_Num(int*,int);int CommonDivisor(int,int);int CommonMultiple(int,int);int PrimeNumber(int*,int);int TongGouShu(int*,int);int ReadFile_Str(char*,char* str);void WriteFile_Str(char*,char* str,int,char* mode);void sort_Str(char* str,int);void reverse(char*

4、str,int);void reverse_recursion(char* str);int SearchHello(char* str,int);void FindMaxMin(char* str,int,char* r);void ProcessString(char* r);int main(int argc,char* argv)char choice;if(2=argc)if(strcmp(argv1,Handle int)=0)int Data_NumN;int len;printf(*整数操作*nn);len=ReadFile_Num(Data_Num);printf(请选择要进

5、行的操作:);printf(n1、排序n);printf(2、求中间两个数的最大公约数和最小公倍数n);printf(3、统计素数n);printf(4、统计同构数n);fflush(NULL);scanf(%c,&choice);switch(choice)case 1: sort_Num(Data_Num,len); WriteFile_Num(int_output1.txt,Data_Num,len);printf(排序完成!n排序结果已存至int_output1.txt文件中.n);break;case 2:int m1,m2;m1=Data_Num(len+1)/2;m2=Data_

6、Num(len+1)/2+1;printf( 中间两数为: %d,%dn,m1,m2 );printf(最大公约数为: %dn,CommonDivisor(m1,m2);printf(最小公倍数为: %dn,CommonMultiple(m1,m2);break;case 3:printf(数据中共有%d个素数n,PrimeNumber(Data_Num,len);break;case 4:printf(数据文件中共有%d个同构数n,TongGouShu(Data_Num,len);break;default:printf(输入错误n);else if(strcmp(argv1,Handle

7、string)=0)char* Data_StringN;int i;int n;char choice;for(i=0;iN;i+)Data_Stringi=(char*)malloc(sizeof(char)*256);printf(*字符串操作*nn);printf(1、排序n);printf(2、字符串逆置n);printf(3、统计hello出现的次数n);printf(4、去除最小串中在最大串里出现过的字符n);n=ReadFile_Str(string_input.txt,Data_String);scanf(%c,&choice);switch(choice)case 1:so

8、rt_Str(Data_String,n);WriteFile_Str(string_output1.txt,Data_String,n,w);break;case 2:char*p;int i;reverse(Data_String,n/2);for(i=0;in/2;i+)p=Data_Stringn/2+i;reverse_recursion(p);break;case 3:printf(hello 出现%d次n,SearchHello(Data_String,n);break;case 4:char* r2;FindMaxMin(Data_String,n,r);printf(最小串:

9、 %sn,r0);printf(最大串: %s,r1);ProcessString(r);puts(r0);elseprintf(指令格式错误n);exit(0);elseprintf(指令格式错误n);exit(0);return 0;int ReadFile_Num(int* Data_Num)int i=0;FILE* fp=NULL;if( (fp=fopen(int_input.txt,r)=NULL )printf(数据文件不存在n,N);exit(0);while(!feof(fp)fscanf(fp,%d,&Data_Numi+);fclose(fp);printf(数据文件读

10、取完成n);return i-1;void WriteFile_Num(char* FileName,int* Data_Num,int n)FILE* fp;int i;fp=fopen(FileName,w);for(i=0;in;i+)fprintf(fp,%dn,Data_Numi);fclose(fp);void sort_Num(int* Data_Num,int len)int i,j;int t;for(i=1;it)Data_Numj=Data_Numj-1;j-;Data_Numj=t;int CommonDivisor(int a,int b)int t;while(b!

11、=0)t=a;a=b;b=t%b;return a;int CommonMultiple(int a,int b)int t;if(ab)t=a;a=b;b=t;t=a;while(a%b!=0)a+=t;return a;int PrimeNumber(int* Data_Num,int len)int i,j;int flag=0;int count=0;int PrimeNumN;for(i=0;ilen;i+)flag=1;for(j=2;jData_Numi;j+)if(Data_Numi%j=0)flag=0;break;if(flag)PrimeNumcount+=Data_Nu

12、mi;return count;int TongGouShu(int* Data_Num,int len)int i;int t;int end;int wei;int s;int count=0;int rN;for(i=0;ilen;i+)end=0;wei=0;s=1;t=Data_Numi;while(t!=0)t/=10;wei+;t=Data_Numi*Data_Numi;while(wei-!=0)end+=(t%10)*s;t/=10;s*=10;if(end=Data_Numi)rcount+=Data_Numi;return count;int ReadFile_Str(c

13、har* name,char* str)FILE* fp;int i=0;if( (fp=fopen(name,r) )!=NULL)while(!feof(fp)fgets(stri+,100,fp);elseprintf(文件%s不存在,name);fclose(fp);return i-1;void sort_Str(char* str,int len)int i,j;char* t;for(i=1;i0 )strj=strj-1;j-;strj=t;void WriteFile_Str(char* name,char* str,int n,char* mode)FILE* fp;int

14、 i;fp=fopen(name,mode);for(i=0;in;i+)fprintf(fp,%s,stri);fclose(fp);void reverse(char* str,int n)char* buf=(char*)malloc(sizeof(char)*256);char* end;int i;int j;int len;WriteFile_Str(string_output2.txt,&buf,0,w);for(i=0;in;i+)len=strlen(stri);end=stri+len-1;for(j=0;jlen;j+)bufj=*end-;bufj=0;WriteFil

15、e_Str(string_output2.txt,&buf,1,a);free(buf);printf(操作完成!n逆置后的数据已保存至string_output2.txt文件中n);void reverse_recursion(char* str)FILE* fp=fopen(string_putput2.txt,a);if(*str!=0)reverse_recursion(str+1);fputc(*str,fp);fclose(fp);int SearchHello(char* str,int n)int i,j,k;char buf6;char* p;int len;int coun

16、t=0;for(i=0;i=5)for(j=0;j=len-5;j+)p=stri+j;for(k=0;k5;k+)bufk=*p+;bufk=0;if( strcmp(buf,hello)=0 )count+;return count;void FindMaxMin(char* str,int n,char* r)int i;char* max=str0;char* min=str0;for(i=1;in;i+)if( strcmp(max,stri)0 )min=stri;r0=(char*)malloc(sizeof(min);r1=(char*)malloc(sizeof(max);strcpy(r0,min);strcpy(r1,max);void ProcessString(char* r)char*p=r0;char*q=r1;char*t;int flag=1;while(*q!=0)flag=1;p=r0;while(*p!=0)if(*p=*q)flag=0;t=p;while(*(t+1)!=0)*t=*(t+1);t+;*t=0;elsep+;if(flag=1)q+;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁