文章
19
粉丝
0
获赞
112
访问
2.2k
char c[1005]={0};
存储想加结果的数组c一定要初始化,否则在print函数中计算strlen()会出错,正确率50%
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void add(char a[], char b[], char c[]){
int t=0;
int len=strlen(a);
//c[len+1]='\0';
for(int i=len-1; i>=0; i--){
int he=(a[i]-'0'+b[i]-'0'+t);
c[i+1]=he%10+'0';
t=he/10;
}
c[0]=t+'0';
}
void print(char a[]){
int k=a[0]=='0' ? 1 : 0;
int len=strlen(a);
//printf("[%d %d]",k,len);
for(int i=k; i<len; i++){
printf("%c", a[i]);
}
printf("\n");
}
int main(){
char a[1005],b[1005];
char temp[2005];
while(fgets(temp, 2005, stdin)!=NULL){
temp[strcspn(temp, "\n")]="\0";
sscanf(temp, "%s %s", a, b);
//printf("[%d-%d]",strlen(a),strlen(b));
char c[1005]={0};
add(a, b, c);
print(c);
}
return 0;
}
登录后发布评论
暂无评论,来抢沙发