该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#include
#include
int max(int a,int b){
int m;
if(a>=b)m=a;
if(a
return m;
}
int main()
{
int a[100]={0},b[100]={0};
int i,j,k,ka,kb,pa1=0,pb1=0,la,lb;
char a1[100],b1[100];
gets(a1);
gets(b1);
ka=strlen(a1);
kb=strlen(b1);
for(i=0;i
if(a1[i]=='.')pa1=i;
}
for(i=0;i
if(b1[i]=='.')pb1=i;
}
la=ka-pa1-1;
lb=kb-pb1-1;
for(i=0;i
a[i]=a1[i]-'0';
for(i=0;i
b[i]=b1[i]-'0';
int c[100]={0};
if(pa1!=0||pb1!=0){
c[max(la,lb)]='.';
if(la>=lb){
j=0;
i=pb1+la;
for(k=ka-1;k>pa1;k--){
c[j]=b[i]+a[k]+c[j];
c[j+1]=c[j+1]+c[j]/10;
c[j]=c[j]%10;
i--;
j++;
}
}
else{
j=0;
k=pa1+lb;
for(i=kb-1;i>pb1;i--){
c[j]=b[i]+a[k]+c[j];
c[j+1]=c[j+1]+c[j]/10;
c[j]=c[j]%10;
k--;
j++;
}
}
k=pa1-1;
i=pb1-1;
for(j=max(la,lb)+1;j
if(i<0&&k>=0){
c[j]=a[k]+c[j];
c[j+1]=c[j+1]+c[j]/10;
c[j]=c[j]%10;
k--;
}
if(i>=0&&k<0){
c[j]=b[i]+c[j];
c[j+1]=c[j+1]+c[j]/10;
c[j]=c[j]%10;
i--;
}
if(i>=0&&k>=0){
c[j]=b[i]+a[k]+c[j];
c[j+1]=c[j+1]+c[j]/10;
c[j]=c[j]%10;
i--;
k--;
}
if(i<0&&k<0)break;
}
}
else{
k=ka-1;
i=kb-1;
for(j=0;j
if(i<0&&k>=0){
c[j]=c[j]+a[k];
c[j+1]=c[j+1]+c[j]/10;
c[j]=c[j]%10;
k--;
}
if(k<0&&i>=0){
c[j]=c[j]+b[i];
c[j+1]=c[j+1]+c[j]/10;
c[j]=c[j]%10;
i--;
}
if(i<0&&k<0)break;
if(i>=0&&k>=0){
c[j]=c[j]+a[k]+b[i];
c[j+1]=c[j+1]+c[j]/10;
c[j]=c[j]%10;
i--;
k--;
}
}
}
char d[100]={0};
k=0;
if(c[j]=0){
for(i=j-1;i>=0;i--){
d[k]=c[i];
k++;
}
}
else{
for(i=j;i>=0;i--){
d[k]=c[i];
k++;
}
}
puts(d);
return 0;
}