C programozás help
-
DirtyPio #141 Sziasztok, volna egy kis problemam a kovetkezo programmal, a vektorokat amikor feltolto (reading fuggveny) minden egyes vektorerteknek -47 -t ad a program... En nem jottem ra hogy hol hibaztam. A program lenyege amugy, ket hosszu(80szamjegy) szamot kivan osszeadni. A szamok ketvektorba szamjegyenkent vannak tarolva es egy harmadikba lesz az eredmegy :
//program 5.6 (lab)
#define MAX 81
#include <stdio.h>
#include <stdlib.h>
int reading(int x[],int max)
{
int i=0,k,c;
while ((c=getchar()!=EOF)&&(i<max))
{
x[i]=c-'0';
i++;
}
i--;
return i;
}
int add(int a, int b, int r)
{
int s;
s=(a+b+r)%10;
return s;
}
int reminder(int a, int b, int r)
{
int s;
s=(a+b+r)/10;
return s;
}
int main(void)
{
int i,j,k,r;
int x[MAX],y[MAX],z[MAX];
for (k=0;k<80;k++)
{
x[k]=0;
y[k]=0;
}
i=reading(x,MAX);
j=reading(y,MAX);
printf("%i %i\n",i,j);
r=0;
for (k=0; (k<=i) && (k<=j); k++)
{
z[k]=add(x[k],y[k],r);
r=reminder (x[k],y[k],r);
}
if (i<j) for (i=k; i<=j; i++)
{
z[i]=add(0,y[i],r);
r=reminder(0,y[i],r);
}
else
for (j=k; j<=i; j++)
{
z[j]=add(0,x[j],r);
r=reminder (0,x[j],r);
}
z[k++]=r;
for (i=0;i<(k+1);i++)
printf("%i \n",z[i]);
system("pause");
return(0);
}