Cod sursa(job #85622)

Utilizator csrazvanRazvan Alecsandrescu csrazvan Data 22 septembrie 2007 00:54:29
Problema A+B Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <stdio.h>
#include <stdlib.h>

int itoa(int nr,char *vector){
int i=0;
while(nr>0){
  vector[i++]=nr%10+48;
  nr/=10;
}
vector[i]=0;
return i;
}
int aduna(char *a,int nrc1,char *b,int nrc2,char *c){
        int i=0;
char *wL,*wS;
int nrL,nrS;
int t=0;
if(nrc1<=nrc2){
        wL=b;nrL=nrc2;
        wS=a;nrS=nrc1;
}
else{
        wL=a;nrL=nrc1;
        wS=b;nrS=nrc2;
}
while(i<nrS){
        c[i++]=(*wL+*wS-96+t)%10+48;
        t=(*wL+*wS-96+t)/10;
        wL++;
        wS++;
}
while(i<nrL){
        c[i++]=(*wL-48+t)%10+48;
        t=(*wL-48+t)/10;
        wL++;
}
if(t) c[i++]=t+48;
c[i]=0;
return i;

}

int main(int argc,void** argv){

int nr1,nr2;
int nrc1,nrc2,nrc3;
char a[20],b[20],c[20];
int i;

FILE *f,*g;
f=fopen("adunare.in","r");
g=fopen("adunare.out","w");
fscanf(f,"%d\n%d",&nr1,&nr2);
nrc1=itoa(nr1,a);
nrc2=itoa(nr2,b);
nrc3=aduna(a,nrc1,b,nrc2,c);
for(i=nrc3-1;i>=0;i--)
        fputc(c[i],g);
fputc('\n',g);

return 0;
}