Pagini recente » Cod sursa (job #2507108) | Cod sursa (job #278823)
Cod sursa(job #278823)
#include<stdio.h>
#include<string.h>
int main(void)
{
char a[20],b[20],c[20],d;
int la,lb,i,len,cifa,cifb,r=0;
FILE *f,*g;
f=fopen("adunare.in","r");
g=fopen("adunare.out","w");
fscanf(f,"%s%s",&a,&b);
la=strlen(a);lb=strlen(b);
len=(la>lb)?la:lb;
if(la<len)
{
for(i=0;i<la/2;i++){d=a[i];a[i]=a[la-i-1];a[la-i-1]=d;}
for(i=la;i<=len;i++) a[i]='0';
for(i=len-1;i>=0;i--) a[i]=a[len-i-1];
for(i=0;i<la-1;i++) a[i]='0';
} // se decaleaza cifrele pana la capatul maxim al sirurilor
if(lb<len)
{
for(i=0;i<lb/2;i++){d=b[i];b[i]=b[lb-i-1];b[lb-i-1]=d;}
for(i=lb;i<=len;i++) b[i]='0';
for(i=len-1;i>=0;i--) b[i]=b[len-i-1];
for(i=0;i<lb-1;i++) b[i]='0';
} // se decaleaza cifrele pana la capatul maxim al sirurilor
for(i=1;i<=len;i++)
{
cifa=int(a[len-i])-48;
cifb=int(b[len-i])-48;
if(cifa>10 || cifa<0) cifa=0;
if(cifb>10 || cifa<0) cifb=0;
c[len-i]=(cifa+cifb)%10 + 48 + r;
if((cifa+cifb)>=10 ) r=(cifa+cifb)/10; else r=0;
// cout<<cifa<<"+"<<cifb<<"+"<<r<<"="<<c[len-i]<<endl;
}
if(r) fprintf(g,"%d",r);
for(i=0;i<len;i++)
{
fprintf(g,"%c",c[i]);
}
fcloseall();
return 0;
}