Pagini recente » Cod sursa (job #2410547) | Cod sursa (job #1053371) | Cod sursa (job #2623818) | Cod sursa (job #1973879) | Cod sursa (job #187509)
Cod sursa(job #187509)
#include<stdio.h>
#include<string.h>
FILE *f;
void transformare(char sir[200],int v[200])
{
//find vector modificarile se vor transmite ; daca era un numar sau o adresa trebuia sa pui &x
int i,j,n;
n=strlen(sir);
j=1;
for(i=n-1;i>=0;i--)
{ v[j]=sir[i]-48;
j++;
}
v[0]=n;
}
void afisare(int v[50])
{
int i;
for(i=v[0];i>=1;i--)
fprintf(f,"%d",v[i]);
}
void adunare(int va[200],int vb[200],int suma[200])
{
int i,j,n1,n2,aux;
suma[0]=0;
n1=va[0];
n2=vb[0];
aux=0;
for(i=1;i<=n1&&i<=n2;i++)
{
aux=aux+va[i]+vb[i];
suma[i]=aux%10;
aux=aux/10;
}
if(n1>n2)
{
for(j=i;j<=n1;j++)
{
aux=aux+va[j];
suma[j]=aux%10;
aux=aux/10;
}
if(aux)
{ suma[n1+1]=aux;
suma[0]=n1+1;
}
else suma[0]=n1;
}
else
{
for(j=i;j<=n2;j++)
{
aux=aux+vb[j];
suma[j]=aux%10;
aux=aux/10;
}
if(aux)
{ suma[n2+1]=aux;
suma[0]=n2+1;
}
else suma[0]=n2;
}
}
void main()
{
f=fopen("adunare.in","r");
char a[50],b[50];
int va[50],vb[50],suma[50];
fscanf(f,"%s",a);
fscanf(f,"%s",b);
fclose(f);
f=fopen("adunare.out","w");
transformare(a,va);
transformare(b,vb);
adunare(va,vb,suma);
afisare(suma);
fclose(f);
}