Cod sursa(job #925949)

Utilizator shiftcrissCeica Cristian shiftcriss Data 24 martie 2013 20:41:16
Problema A+B Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.99 kb
#include<stdlib.h>
#include<stdio.h>
#include<string.h>

long m,n,i,j;
char a[11],b[11];

int  *aa,*bb,*cc;

int main()
{ 
	FILE * out, * in;
	in = fopen("adunare.in","r");
	out = fopen("adunare.out","w");
	fscanf(in,"%s",a);
	fscanf(in,"%s",b);
	
	n = strlen(a);
	m = strlen(b);
	aa = (int*) malloc(n*sizeof(int));
	bb = (int*) malloc(n*sizeof(int));
	for (i = n-1; i >= 0; i--) 
		aa[n-i-1]=(int) (a[i]-'0');
	for (i = m-1; i >= 0; i--) 
		bb[m-i-1]=(int) (b[i]-'0');
	if(n<m) {
		for(i = n; i <= m; i++) 
			a[i] = 0; 
		n = m;
	}
	  else {
		  for(i = m; i <= n; i++) 
			  b[i] = 0;
		  m = n;
	 }
    int nr = m,r = 0;
	cc = (int*) malloc(nr*sizeof(int));
	for(i = 0; i < nr; i++) {
		r = aa[i]+bb[i]+r; 
		cc[i] = r%10; 
		r = r/10;
	}
	if(r>0) {
		fprintf(out,"%d",r);
	    for(i = nr-1; i >= 0; i--)
					 fprintf(out,"%d",cc[i]);
	}
      else 	
		  for(i = nr-1; i >= 0; i--)
					 fprintf(out,"%d",cc[i]);
	fclose(in);
	fclose(out);
	
	return 0;
}