博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
大正数相加
阅读量:6359 次
发布时间:2019-06-23

本文共 1068 字,大约阅读时间需要 3 分钟。

#include
#include
int len;void plus(int a[],int b[]){ int i; len=a[0]>b[0]?a[0]:b[0]; for(i=1;i<=len;i++) { a[i]+=b[i]; if(a[i]>=10) { a[i+1]++; a[i]=a[i]%10; } } if(a[len+1]!=0) len++;//a[0]是加数的长度 a[0]=len; }int main() { int i; char str1[401],str2[401]; int a[401]={0},b[401]={0},c[403]={0}; while(1) { memset(str1,0,sizeof(str1)); memset(str2,0,sizeof(str2)); if(gets(str1)==NULL||gets(str2)==NULL)//不是EOF break; a[0]=strlen(str1); for(i=a[0];i>=1;i--) a[i]=str1[a[0]-i]-'0'; /* for(i=1;i<=a[0];i++) printf("%d ",a[i]); putchar('\n'); */ for(i=0;i<=a[0];i++) c[i]=a[i]; b[0]=strlen(str2); //逆序,也就是说,最低位在 a[1] for(i=b[0];i>=1;i--) b[i]=str2[b[0]-i]-'0'; plus(a,b); for(i=c[0];i>=1;i--)//用c[i]不用a[i]是因为a[i]已经变化 printf("%d",c[i]); printf(" + "); for(i=b[0];i>=1;i--) printf("%d",b[i]);//b[i]未变,此处可以继续用,不用一开始设置临时变量 printf(" = "); for(i=len;i>=1;i--) printf("%d",a[i]); putchar('\n'); memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(c,0,sizeof(c)); } return 0;}

 

转载地址:http://nfbma.baihongyu.com/

你可能感兴趣的文章
Python——eventlet.greenthread
查看>>
记大众点评之面试经历
查看>>
第三章:基本概念
查看>>
Jersey+mybatis实现web项目第一篇
查看>>
C++形参中const char * 与 char * 的区别
查看>>
espresso 2.0.4 Apple Xcode 4.4.1 coteditor 价格
查看>>
Object-C中emoji与json的问题
查看>>
linux 命令
查看>>
灾后重建
查看>>
Nothing 和 Is
查看>>
第一个sprint冲刺第三天
查看>>
周末web前端练习
查看>>
hdu 5754 Life Winner Bo 博弈论
查看>>
Overlay network 覆盖网络
查看>>
Linux之编译需要的文件变化时刻
查看>>
IntelliJ IDEA中怎么查看方法说明?
查看>>
mvn常用命令
查看>>
redis zset 顺序问题
查看>>
C# 判断网站是不是discuz论坛
查看>>
winsock学习1
查看>>