C语言基础,大数据的输入和输出

2025-03-13 10:56:08
推荐回答(1个)
回答1:

#include 
#include 
#include 
#define MAX 101
int check(char *a){
int i,n,k=1;
n=strlen(a);
for(i=0;i if(a[i]>'9'||a[i]<'0'){
k=0;
break;
}
return k;
}
int plus(char *a,char *b,int *s){
int i,j,n,m,t,k=0;
//printf("%s\n%s\n",a,b);
i=strlen(a)-1;
j=strlen(b)-1;
t=0;
while(i>=0&&j>=0){
t=t+a[i--]-'0'+b[j--]-'0';
s[k++]=t%10;
t=t/10;
}
if(t&&(i!=j))
s[k]=t;
if(t&& (i==j))
s[k++]=t;
while(i>=0){
s[k]+=a[i--]-'0';
k++;
}  
while(j>=0){
s[k]+=b[j--]-'0';
k++;
}
for(i=k-1;i>=0;i--){
printf("%d",s[i]);
}
printf("\n");
return k;
}
int main(int argc, char *argv[]){
 char  a[MAX],b[MAX];
 int c[MAX+2]={0};
 scanf("%s%s",&a,&b);
 //printf("%s\n%s\n",a,b);
 if(check(a)&&check(b))
   plus(a,b,c); 
 else
  printf("error\n");
 return 0;
}