Pagini recente » Cod sursa (job #2762722) | Cod sursa (job #2117110) | Rating mihaita the midget (mihaioaremica) | Cod sursa (job #600260) | Cod sursa (job #66610)
Cod sursa(job #66610)
#include<stdio.h>
#include<string.h>
struct nod{
int info;
nod*next;
};
void add(nod*&p,nod*&u,int x){
nod*q;
q=new nod;
q->info=x;
q->next=NULL;
if((u==p)&&(u==NULL))
p=q;
else
u->next=q;
u=q;
}
nod *lista(char s[100]){
int i,n=strlen(s);
nod*p,*u;
p=u=NULL;
for(i=n-1;i>=0;i--)
add(p,u,s[i]-'0');
return p;
}
void citire(nod*&p){
char s[100];
scanf("%s",s);
p=lista(s);
}
void scrie(nod*q){
if(q){
scrie(q->next);
printf("%d",q->info);
}
}
void suma(nod*&p1,nod*p2){
int t=0,x;
nod*q1=p1,*q2=p2,*u;
for(;q1&&q2;){
x=q1->info+q2->info+t;
q1->info=x%10;
t=x/10;
u=q1;
q1=q1->next;
q2=q2->next;
}
for(;q1;){
x=q1->info+t;
q1->info=x%10;
t=x/10;
u=q1;
q1=q1->next;
}
for(;q2;q2=q2->next){
x=q2->info+t;
add(p1,u,x%10);
t=x/10;
}
if(t)
add(p1,u,t);
}
int main(){
freopen("adunare.in","r",stdin);
freopen("adunare.out","w",stdout);
nod*p1=NULL,*p2=NULL;
citire(p1);
citire(p2);
suma(p1,p2);
scrie(p1);
}