поэлементное сложение двух массивов

  • Автор темы pharrell
  • Дата начала
Статус
Закрыто для дальнейших ответов.
P

pharrell

#1
Помогите исправить ошибку.Заранее Спасибо
Код:
#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
#include<math.h>
#include<string.h>
#define maxlen 400
#define result 500


int read_num(int ar[])
{
char ch;
int	i=0;
do{
ch=getchar();
if(ch>='0' && ch<='9') 
{
ar[i+1]=ch-'0';
i++;

}
}
while(ch>='0' && ch<='9');

printf("%d\n",i+1);
return i+1;
}


void write_num(int ar[],int size)
{
int i;
for(i=0;i<size;i++)
{
printf("%d",ar[i]);
}
printf("\n");

}
void null(int ar[],int len)
{
int i;
for(i=0;i<=len;i++)
{
ar[i]=0;
}
}

void main(void)
{
int a,b,h=0;
int i,j=0,k;
int num_1[maxlen];
int num_2[maxlen];
int res[result];
int flag;
int tmp=0;
null(num_1,maxlen);
null(num_2,maxlen);
null(res,maxlen+1);
a=read_num(num_1);
write_num(num_1,a);
printf("\n\n\n");
b=read_num(num_2);
write_num(num_2,b );


//_______________________________________

if( a>=b )
{
printf("summmary\n");
flag=0;
for(i=a,j=b;i>=0,j>=0,k>=0;i--,j--,k--)
{


tmp=num_1[i]+num_2[j]+flag;
if(tmp<10)
{
res[k]=tmp;
}
else
{
res[k]=tmp-10;
flag=1;
}
//h++;

}
}
printf("\n\n\n");
for(k=0;k<a;k++)
{
printf("%d",res[k]);
}
printf("\n");
}
 
04.09.2006
2 566
3
#2
Ну что за манеры? Неужели трудно сказать где ошибка, в чем она проявляется?
 
P

pharrell

#3
Извините не догадался.Ошибка в том что числа не складываются.Т.е.массивы заполняются и выводятся,а начиная с if( a>=b ) не работает.
 
Статус
Закрыто для дальнейших ответов.