#include <stdio.h> #include <malloc.h> #include <string.h> #define N 100 int main() { int i; bool flag = false; char s1[N],s2[N]; printf("输入被加数:\n"); scanf("%s",s1); printf("输入加数:\n"); scanf("%s",s2); int len1 = strlen(s1); int len2 = strlen(s2); int len = (len1>len2 ? len1:len2)+1; char *a = (char*)malloc(sizeof(char)*len1); char *b = (char*)malloc(sizeof(char)*len2); char *c = (char*)malloc(sizeof(char)*len); memset(c,len); for(i=0;i<len1;i++) a[i] = s1[len1-1-i]-'0'; for(i=0;i<len2;i++) b[i] = s2[len2-1-i]-'0'; if(len1>=len2) { for(i=0;i<len2;i++) c[i] = a[i]+b[i]; for(i=len2;i<len1;i++) c[i] = a[i]; } else { for(i=0;i<len1;i++) c[i] = a[i]+b[i]; for(i=len1;i<len2;i++) c[i] = b[i]; } for(i=0;i<len;i++) { if(c[i]>9) { c[i+1] += c[i]/10; c[i] = c[i]%10; } } printf("大数相加结果为:\n"); for(i=len-1;i>=0;i--) { if(flag) { c[i]+='0'; printf("%c",c[i]); } else if(c[i]!=0) { flag = true; c[i]+='0'; printf("%c",c[i]); } } printf("\n"); free(a); free(b); free(c); a=NULL; b=NULL; c=NULL; return 0; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。