




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大小写转换11000以内的水仙花数2程序功能:求任意两个整型数之间的素数2字符串缩位4普通字符串逆序4递归实现字符串逆序5程序功能:谭浩强 6.13 扩展为高精度加法6高精度加减法,考虑字符串加减法要设计0,太麻烦了,转为数组8高精度加法(减法)法214/大小写转换#include#define MAXLEN 100void main()char strMAXLEN=;int i=0;scanf(%s,str);for(i=0;istrlen(str);i+)if(*(str+i)=a)*(str+i)=*(str+i)+A-a;else if(*(str+i)=A)*(str+i)=*(str+i)+a-A;elsestrcpy(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;iLEN;i+)num=i;k=0;for(j=1;ji/2+1;j+)if(i%j=0)num-=j;factork+=j;if(num=0)printf(%d=%d,i,factor0);for(j=1;jk;j+)printf(+%d,factorj);printf(n);/程序功能:求任意两个整型数之间的素数#include #include int isprime(const int num);int main() int num1,num2;int temp,i;scanf(%d%d,&num1,&num2); if (num1num2)temp=num1;num1=num2;num2=num1;for(i=num1+1;inum2;i+)if(isprime(i)printf(%d ,i);printf(n);return 0;int isprime(const int num)/判断是否为素数int i;if (num2)return 0;else if (num=2)return 1;for(i=2;i=sqrt(num);i+)if(num%i=0)return 0;return 1;/字符串缩位#include#include#define MAXLEN 200int main()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);*(str2+j+1)=(char)(n+0);j+=2;n=1;+i;*(str2+j)=*(str1+i);*(str2+j+1)=(char)(n+0); printf(n%sn,str2);return 0;/普通字符串逆序#include#includechar* reverse(char *str);int main()/注意字符串常量和字符串变量是不同的char *str1=1234235;char str100;strcpy(str,str1);puts(reverse(str);return 0;char* reverse(char *str) int i=0,j=0,ss=0; char temp;ss=strlen(str); for(i=0,j=ss-1;ji;+i,-j) temp=stri; stri=strj; strj=temp; return str;/递归实现字符串逆序#include#includevoid reverse(char *str, int left, int right);int main()char *str1=1234235,*str2=325334; char str100;strcpy(str,str1);reverse(str,0,strlen(str)-1);return 0;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 扩展为高精度加法#include#include#define MAXLEN 2000#define LIMIT 9void add(const char *str1, const char *str2, char *result);void num2str(const long int num, char *str);int main() int a,n; int i=0,j=0; long int sum=0,t=0; char resultMAXLEN; char numstrMAXLEN; char numMAXLEN; scanf(%d%d,&a,&n); if(a=0 | n=0) strcpy(result,0); else if(nLIMIT) for(i=0;in;i+) t=t*10+a; sum+=t; else if(nMAXLEN-1) for(i=0;iLIMIT-1;i+) t=t*10+a; sum+=t; num2str(sum,numstr); strcpy(result,numstr); for(i=LIMIT;i=n;i+) for(j=0;ji;j+) numj=(char)(a+0); numj=0; add(num,numstr,result);strcpy(numstr,result); for(i=0;istrlen(result);i+) /字符串逆序 resulti=numstrstrlen(result)-i-1; resulti=0; else puts(errorn); puts(result); return 0;void add(const char *str1, const char *str2, char *result)/大数加法char strMAXLEN;int i=0;strcpy(str,str2);for(i=strlen(str);istrlen(str1);i+)stri=0;stri=0; for(i=0;istrlen(str1);i+)resulti=0;resulti=0;for(i=0;istrlen(str1);i+)resulti=(char)(resulti+stri+str1i-2*0)%10+0);resulti+1=(char)(resulti+stri+str1i-2*0)/10+0);if(resulti!=0)resulti+1=0;elsewhile(resulti=0)resulti=0;-i;void num2str(const long int num, char *str)/数字转化为字符串int i=0;long int num1=num;while(num1!=0)stri=(char)(num1%10+0);num1/=10;+i;stri=0;/高精度加减法,考虑字符串加减法要设计0,太麻烦了,转为数组#include#define MAXLEN 500#includeint main()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 *str1,const char *str2);char stringaMAXLEN,stringbMAXLEN,stringcMAXLEN+1=;/注意赋初值gets(stringa);/输入a gets(stringb);/输入bfor(i=0;istrlen(stringa);i+) if (*stringa!=-) & (*stringa=0) | (*stringa=-) & (*(stringa+1)=0) printf(error,input a again:n); gets(stringa); i=0; else if(*stringa!=-) &(*(stringa+i)9)|(*stringa=-) &(i=1)&(*(stringa+i)9) printf(error,input a again:n); gets(stringa); i=0; for(i=0;istrlen(stringb);i+) if (*stringb!=-) & (*stringb=0) | (*stringb=-) & (*(stringb+1)=0) printf(error,input a again:n); gets(stringb); i=0; else if(*stringb!=-) &(*(stringb+i)9 )|(*stringb=-) &(i=1)&(*(stringb+i)9 ) printf(error,input a again:n); gets(stringb); i=0; add (stringa, stringb, stringc); print(stringc);return 0;void add (const char *num1, const char *num2, char *result)int intaMAXLEN=0,intbMAXLEN=0,intcMAXLEN+1=0;int i=0,j=0;int flagMAXLEN+1=0; char *str1=num1,*str2=num2,*temp;/同为正if (*str1!=- & *str2!=-)/字符串转为整型数组for(i=0,j=strlen(str1)-1;istrlen(str1);i+,j-)*(inta+j)=*(str1+i)-0;for(i=0,j=strlen(str2)-1;istrlen(str2);i+,j-)*(intb+j)=*(str2+i)-0;/数组模拟加法for(i=0;i=0;i-,j+)*(result+j)=(char)(*(intc+i)+0); /一个为负else if(*str1=- & *str2!=-)|(*str1!=- & *str2=-)/保证第二个数为负if (*str1=-)temp=str1;str1=str2;str2=temp;for(i=0,j=strlen(str1)-1;istrlen(str1);i+,j-)*(inta+j)=*(str1+i)-0;for(i=1,j=strlen(str2)-2;istrlen(str2);i+,j-)*(intb+j)=*(str2+i)-0;/数组模拟减法if(ispositive(str1,str2)for(i=0;i=0)*(intc+i)=(*(inta+i)-*(intb+i)+*(flag+i)%10;else*(intc+i)=(10+*(inta+i)-*(intb+i)+*(flag+i)%10;*(flag+i+1)=-1; /消除无意义的0while(*(intc+i)=0)-i;for(j=0;i=0;i-,j+)*(result+j)=(char)(*(intc+i)+0);elsefor(i=0;i=0)*(intc+i)=(*(intb+i)-*(inta+i)+*(flag+i)%10;else*(intc+i)=(10+*(intb+i)-*(inta+i)+*(flag+i)%10;*(flag+i+1)=-1; /消除无意义的0while(*(intc+i)=0)-i;for(j=0;i=0;i-,j+)*(result+j)=(char)(*(intc+i)+0);for(i=j;i0;i-) *(result+i)=*(result+i-1);*result=-;/同为负elsefor(i=1,j=strlen(str1)-2;istrlen(str1);i+,j-)*(inta+j)=*(str1+i)-0;for(i=1,j=strlen(str2)-2;istrlen(str2);i+,j-)*(intb+j)=*(str2+i)-0; /数组模拟加法for(i=0;i=0;i-,j+)*(result+j)=(char)(*(intc+i)+0);for(i=j;i0;i-) *(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 *result)unsigned int i=0;for(i=0;istrlen(str2)return 1;else if(strlen(str1)strlen(str2)return 0;elsereturn(strcmp(str1,str2)?1:0); /高精度加法(减法)法2#include#include#define MAXLEN 500void add(const char *str1, const char *str2, char *result);int ispstv(const char *str1, const char *str2);int main()char num1MAXLEN-1,num2MAXLEN-1,resultMAXLEN;unsigned int i=0,flag=0;/输入字符串,加容错设计,考虑输的是不是有效数字while(flag=0)gets(num1);if(*num1=-)if(*(num1+1)=0)flag=0;continue;for(i=1;istrlen(num1);i+)if(*(num1+i)9)flag=0;break;if(i=strlen(num1)flag=1;elseif(*num1=0)flag=0;continue;for(i=0;istrlen(num1);i+)if(*(num1+i)9)flag=0;break;if(i=strlen(num1)flag=1; flag=0;while(flag=0)gets(num2);if(*num2=-)if(*(num2+1)=0)flag=0;continue;for(i=1;istrlen(num2);i+)if(*(num2+i)9)flag=0;break;if(i=strlen(num2)flag=1;elseif(*num2=0)flag=0;continue;for(i=0;istrlen(num2);i+)if(*(num2+i)9)flag=0;break;if(i=strlen(num2)flag=1; add(num1,num2,result);puts(result);return 0;void add(const char *str1, const char *str2, char *result)/大数加法int inum1MAXLEN-1=0,inum2MAXLEN-1=0,iresMAXLEN=0;const int len1=strlen(str1),len2=strlen(str2);int maxlen;int flag=0;int i=0,j=0;/逆序存放在整型数组,方便加减if(*str1=-)for(i=1;ilen1;i+)*(inum1+len1-i-1)=*(str1+i)-0;elsefor(i=0;ilen1;i+)*(inum1+len1-i-1)=*(str1+i)-0;if(*str2=-)for(i=1;ilen2;i+)*(inum2+len2-i-1)=*(str2+i)-0;elsefor(i=0;ilen2?len1:len2);if(*str1=-)-maxlen;for(i=0;imaxlen;i+)flag=*(ires+i)+*(inum1+i)+*(inum2+i);*(ires+i)=flag%10;*(ires+i+1)=flag/10; if(*str1=-)*result=-;if(*(ires+maxlen)=0)/最高位无进位for(i=0;imaxlen;i+)*(result+i+1)=(char)(*(ires+maxlen-i-1)+0);*(result+i+1)=0;elsefor(i=0;i=maxlen;i+)*(result+i+1)=(char)(*(ires+maxlen-i)+0);*(result+i+1)=0;elseif(*(ires+maxlen)=0)for(i=0;imaxlen;i+)*(result+i)=(char)(*(ires+maxlen-i-1)+0);*(result+i)=0;elsefor(i=0;i=0)/前负后正结果正for(i=0;istrlen(str2);i+)flag=*(ires+i)-*(inum1+i)+*(inum2+i);*(ires+i)=(flag+10)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农村互助性养老服务的资金筹集与使用策略
- 2025至2030年中国电分上稿油行业投资前景及策略咨询报告
- 2025至2030年中国环型工装板输送线行业投资前景及策略咨询报告
- 2025至2030年中国煤矿用局部通风机行业投资前景及策略咨询报告
- 体育教育毕业后干什么
- 2025至2030年中国滑动鼠标行业投资前景及策略咨询报告
- 2025至2030年中国涂料油漆新型添加剂行业投资前景及策略咨询报告
- 2025至2030年中国沥青罐车行业投资前景及策略咨询报告
- 2025至2030年中国水性防腐装饰面漆行业投资前景及策略咨询报告
- 2025至2030年中国椭圆型管行业投资前景及策略咨询报告
- 2024年人教版一年级数学(下册)期末试卷及答案(各版本)
- 特种设备安全员守则内容
- DB50-T 1556.1-2024 医疗护理员服务等级评定 第1部分:普通患者护理员
- 2024年山东东营初中生物会考模拟试卷(解析版)
- 上海市八年级下学期数学期末考试模拟卷01-2023-2024学年上海市初中数学下学期期末全真模拟检测卷(沪教版)
- 2024年投资入股协议电子版(4篇)
- 《电力建设工程起重施工技术规范》
- 大学生在校表现证明模板3篇
- 4.彩泥蔬菜(一)(课件)-一年级劳动教育“小农庄”(校本课程)
- T-XLXH 012-2023 梨火疫病防治技术规程
- 2024年甘肃省初中《体育》学业水平考试参考题库(含答案)
评论
0/150
提交评论