C语言编程大作业.doc_第1页
C语言编程大作业.doc_第2页
C语言编程大作业.doc_第3页
C语言编程大作业.doc_第4页
C语言编程大作业.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

利用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. 排序(结果存到文件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 WriteFile_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* 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(请选择要进行的操作:);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_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 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:sort_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(最小串: %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(数据文件读取完成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!=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_Numi;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(char* 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 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;WriteFile_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 count=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*)mal

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论