Pagini recente » Cod sursa (job #2422870) | Cod sursa (job #2628974) | Cod sursa (job #1661486) | Cod sursa (job #1873850) | Cod sursa (job #1014637)
#include<stdio.h>
FILE*f=fopen("adunare.in","r");
FILE*g=fopen("adunare.out","w");
int nr1,nr2,v[35];
char x;
struct nod
{
int val;
nod *urm;
} *prim1,*prim2,*p,*q;
int main()
{
prim1=new nod;
prim2=new nod;
fscanf(f,"%c",&x);
prim1->val=x-'0';
prim1->urm=NULL;
nr1=1;
while(x>='0'&&x<='9')
{
fscanf(f,"%c",&x);
if(x>='0'&&x<='9')
{
++nr1;
p=new nod;
p->val=x-'0';
p->urm=prim1;
prim1=p;
}
}
fscanf(f,"%c",&x);
prim2->val=x-'0';
prim2->urm=NULL;
nr2=1;
while(x>='0'&&x<='9')
{
if(fscanf(f,"%c",&x)!=EOF)
{
if(x>='0'&&x<='9')
{
++nr2;
p=new nod;
p->val=x-'0';
p->urm=prim2;
prim2=p;
}
}else
break;
}
if(nr2>nr1)
{
p=prim1;
while(p->urm!=NULL)
p=p->urm;
for(int i=nr1;i<nr2;++i)
{
q=new nod;
q->val=0;
p->urm=q;
p=q;
}
nr1=nr2;
}
else
{
p=prim2;
while(p->urm!=NULL)
p=p->urm;
for(int i=nr2;i<nr1;++i)
{
q=new nod;
q->val=0;
p->urm=q;
p=q;
}
}
p=prim1;
nod *p2;
p2=prim2;
int t=0;
for(int i=1;i<=nr1;++i)
{
p->val+=p2->val+t;
t=p->val/10;
p->val%=10;
if(i<nr1)
p=p->urm;
p2=p2->urm;
}
if(t)
{
++nr1;
p2=new nod;
p2->val=t;
p->urm=p2;
p2->urm=NULL;
}
v[0]=nr1;
p=prim1;
for(int i=1;i<=nr1;++i)
{
v[i]=p->val;
p=p->urm;
}
for(int i=nr1;i;--i)
fprintf(g,"%d",v[i]);
//fclose(f);
//fclose(g);
return 0;
}