回复 5楼 马后炮
按照你说的改了一下
欢迎来到我的博客:http://blog..cn/noisunyuhong
#include <stdio.h> #include <stdlib.h> #include <string.h> //#define ZERO -99 int main() { char a[10]={0},b[10]={0},sum[10]={0}; int length_a,length_b,i=0,j=0; gets(a); gets(b);//获取字符串 length_a=strlen(a), length_b=strlen(b);//获取字符串长度 i = length_a-1; j = length_b-1; if(length_a>length_b) { while(i>=0) { if(j>=0) b[i]=b[j]; else b[i]='0'; i--; j--; } b[length_a]=0; j=length_a; } else { while(j>=0) { if(i>=0) a[j]=a[i]; else a[j]='0'; i--; j--; } a[length_b]=0; j=length_b; } for(i=j-1;i>=0;i--) { sum[i+1] = a[i]+b[i]+sum[i+1]-2*'0'; if( sum[i+1] >= 10) { sum[i+1] += -10; sum[i]++; } } for(i=0;i<=j;i++) {if(sum[i]==0&&i==0) continue; printf("%d",sum[i]);} system("pause"); return 0; }
#include <stdio.h> #include <stdlib.h> #include <string.h> void rollback(char *ScL,int length_a,int length_b) //对于长度短的字符串前面填充零 { ScL[length_a+1]='\0'; while(length_a>=0) { if(length_b>=0) ScL[length_a]=ScL[length_b]; else ScL[length_a]='0'; length_a--; length_b--; } } int main() { char a[10]={0},b[10]={0},sum[10]={0}; int length_a,length_b; gets(a); gets(b);//获取字符串 length_a = strlen(a), length_b = strlen(b);//获取字符串长度 if(length_a >length_b) { rollback(b,length_a-1,length_b-1); } else { rollback(a,length_b-1,length_a-1); length_a = length_b; } for(length_b = length_a-1;length_b >=0 ; length_b--) { sum[length_b+1] = a[length_b]+b[length_b] + sum[length_b+1]-2*'0'; if( sum[length_b+1] >= 10) //注意字符范围,不然物极必反 { sum[length_b+1] += -10; sum[length_b]++; } } for(length_b = 0;length_b <= length_a;length_b++) //输出 { if(sum[length_b]==0 && length_b==0) //处理前面零 continue; printf("%d",sum[length_b]); } system("pause"); return 0; }LZ看懂吗