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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C语言编程字符串操作Word格式文档下载.docx

1、- else if(*(str+i)Z else strcpy(str,error!); break; puts(str); return 0;/1000以内的水仙花数#include #define LEN 1000int main() int i,j,k; int num; int factorLEN/2; for(i=2;LEN; num=i; k=0; for(j=1;jint isprime(const int num); int num1,num2; int temp,i;%d%d,&num1,&num2); if (num1num2) temp=num1; num1=num2;

2、num2=num1; for(i=num1+1;num2; if(isprime(i)%d ,i); printf(int isprime(const int num) /判断是否为素数 int i; if (num#define MAXLEN 200 char str1MAXLEN; char str2MAXLEN= int i=0,j=0; int n=1; int len=strlen(str1); gets(str1); if(len) while(*(str1+i+1) if(*(str1+i)=*(str1+i+1) +n; else *(str2+j)=*(str1+i); *(

3、str2+j+1)=(char)(n+0 j+=2; n=1; +i; *(str2+j)=*(str1+i); *(str2+j+1)=(char)(n+n%sn,str2);/普通字符串逆序char* reverse(char *str); /注意字符串常量和字符串变量是不同的 char *str1=1234235 char str100; strcpy(str,str1); puts(reverse(str);char* reverse(char *str) int i=0,j=0,ss=0; char temp; ss=strlen(str); for(i=0,j=ss-1;ji;+i

4、,-j) temp=stri; stri=strj; strj=temp; return str;/递归实现字符串逆序void reverse(char *str, int left, int right);,*str2=325334 reverse(str,0,strlen(str)-1);void reverse(char *str, int left, int right) if(left=right) return; char t=strleft; strleft=strright; strright=t; reverse(str, left+1, right-1);谭浩强 6.13

5、扩展为高精度加法#define MAXLEN 2000#define LIMIT 9void add(const char *str1, const char *str2, char *result);void num2str(const long int num, char *str); int a,n; long int sum=0,t=0; char resultMAXLEN; char numstrMAXLEN; char numMAXLEN;a,&n); if(a=0 | n=0) strcpy(result,0 else if(nLIMIT)n; t=t*10+a; sum+=t;

6、MAXLEN-1)LIMIT-1; num2str(sum,numstr); strcpy(result,numstr); for(i=LIMIT;=n; for(j=0; numj=(char)(a+ numj=0 add(num,numstr,result); strcpy(numstr,result);strlen(result); /字符串逆序 resulti=numstrstrlen(result)-i-1; resulti= else puts(errornputs(result);void add(const char *str1, const char *str2, char

7、*result) /大数加法 char strMAXLEN; strcpy(str,str2); for(i=strlen(str);strlen(str1); stri= stri= resulti= resulti=(char)(resulti+stri+str1i-2*)%10+ resulti+1=(char)(resulti+stri+str1i-2*)/10+ if(resulti! resulti+1= while(resulti= resulti= -i;void num2str(const long int num, char *str) /数字转化为字符串 long int

8、 num1=num; while(num1!=0) stri=(char)(num1%10+ num1/=10; +i;/高精度加减法,考虑字符串加减法要设计0,太麻烦了,转为数组#define MAXLEN 500 unsigned int i=0,j=0; /函数声明 int maxlength(const char *a,const char *b); void add (const char *num1, const char *num2, char *result); void print(const char *result); int ispositive(const char

9、*str1,const char *str2); char stringaMAXLEN,stringbMAXLEN,stringcMAXLEN+1=/注意赋初值 gets(stringa);/输入a gets(stringb);/输入bstrlen(stringa); if (*stringa!) & (*stringa=0) | (*stringa= (*(stringa+1)=0)error,input a again: gets(stringa); i=0; else if(*stringa!(*(stringa+i)9)|(*stringa=(i=1)&)strlen(stringb)

10、; if (*stringb! (*stringb=0) | (*stringb= (*(stringb+1)=0) gets(stringb); else if(*stringb!(*(stringb+i) )|(*stringb= ) add (stringa, stringb, stringc); print(stringc);void add (const char *num1, const char *num2, char *result) int intaMAXLEN=0,intbMAXLEN=0,intcMAXLEN+1=0; int flagMAXLEN+1=0; char *

11、str1=num1,*str2=num2,*temp; /同为正 if (*str1! *str2! /字符串转为整型数组 for(i=0,j=strlen(str1)-1;i+,j-) *(inta+j)=*(str1+i)- for(i=0,j=strlen(str2)-1;strlen(str2); *(intb+j)=*(str2+i)- /数组模拟加法 for(i=0;maxlength(str1,str2); *(intc+i)=(*(inta+i)+*(intb+i)+*(flag+i)%10; *(flag+i+1)=(*(inta+i)+*(intb+i)+*(flag+i)

12、/10; /有进位,保存进位;无进位舍去无意义的0;0+0=0; if (*(flag+i) *(intc+i)=*(flag+i);i=0;i-,j+) *(result+j)=(char)(*(intc+i)+ /一个为负 else if(*str1=)|(*str1! *str2=) /保证第二个数为负 if (*str1= temp=str1; str1=str2; str2=temp; for(i=1,j=strlen(str2)-2; /数组模拟减法 if(ispositive(str1,str2) for(i=0; if(*(inta+i)-*(intb+i)+*(flag+i)

13、 *(intc+i)=(*(inta+i)-*(intb+i)+*(flag+i)%10; else *(intc+i)=(10+*(inta+i)-*(intb+i)+*(flag+i)%10; *(flag+i+1)=-1; /消除无意义的0 while(*(intc+i)=0) -i; for(j=0; *(result+j)=(char)(*(intc+i)+ if(*(intb+i)-*(inta+i)+*(flag+i) *(intc+i)=(*(intb+i)-*(inta+i)+*(flag+i)%10; *(intc+i)=(10+*(intb+i)-*(inta+i)+*(

14、flag+i)%10; for(i=j;0;i-) *(result+i)=*(result+i-1); *result= /同为负 for(i=1,j=strlen(str1)-2;maxlength(str1,str2)-1; if (*(flag+i) for(i=j; *(result+i)=*(result+i-1); *result=int maxlength(const char *a,const char *b) int x; x=strlen(a)strlen(b) ? strlen(a) : strlen(b); return x;void print(const char

15、 *result) unsigned int i=0; printf(%c,*(result+i);int ispositive(const char *str1, const char *str2) if(strlen(str1)strlen(str2) else if(strlen(str1) return(strcmp(str1,str2)?1:0);/高精度加法(减法)法2int ispstv(const char *str1, const char *str2); char num1MAXLEN-1,num2MAXLEN-1,resultMAXLEN; unsigned int i=0,flag=0; /输入字符串,加容错设计,考虑输的是不是有效数字 while(flag=0) gets(num1); if(*num1= if(*(num1+1)= flag=0; continue; for(i=1;strlen(num1); if(*(num1+i) flag=0; break; if(i=strlen(num1) flag=1; if(*num1= flag=0; while(flag=

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

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