Pagini recente » Cod sursa (job #2403069) | Cod sursa (job #539651) | Cod sursa (job #2958635) | Cod sursa (job #2846251) | Cod sursa (job #60283)
Cod sursa(job #60283)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main ()
{
FILE *f;
char *linie1,*linie2;
int *a,*b,n,m,i,*s;
linie1=(char *)malloc(15*sizeof(char));
linie2=(char *)malloc(15*sizeof(char));
f=fopen("adunare.in","r");
fgets(linie1,15,f);
fgets(linie2,15,f);
m=strlen(linie1);
n=strlen(linie2);
m--;
fclose(f);
f=fopen("adunare.out","w");
if (m>n) {
a=(int *)malloc(m*sizeof(int));
b=(int *)malloc(m*sizeof(int));
s=(int *)malloc((m+1)*sizeof(int));
for (i=0;i<m-n;i++)
{
a[i]=(int)(linie1[i]-'0');
b[i]=0;
}
for (i=m-n;i<m;i++)
{
a[i]=(int)(linie1[i]-'0');
b[i]=(int)(linie2[i+n-m]-'0');
}
for (i=0;i<m;i++)
{
s[i+1]=a[i]+b[i];
}
s[0]=0;
for (i=m;i>0;i--)
{
if (s[i]>9) {
s[i]=s[i]%10;
s[i-1]++;
}
}
if (s[0]==1) fprintf(f,"1");
for (i=1;i<=m;i++)
fprintf(f,"%d",s[i]);
}
else {
a=(int *)malloc(n*sizeof(int));
b=(int *)malloc(n*sizeof(int));
s=(int *)malloc((n+1)*sizeof(int));
for (i=0;i<n-m;i++)
{
b[i]=linie2[i]-'0';
a[i]=0;
}
for (i=n-m;i<n;i++)
{
b[i]=linie2[i]-'0';
a[i]=linie1[i+m-n]-'0';
}
for (i=0;i<n;i++)
{
s[i+1]=a[i]+b[i];
}
s[0]=0;
for (i=n;i>0;i--)
{
if (s[i]>9) {
s[i]=s[i]%10;
s[i-1]++;
}
}
if (s[0]==1) fprintf(f,"1");
for (i=1;i<=n;i++)
fprintf(f,"%d",s[i]);
}
return 0;
}