hello!
I'm new to C programming.And I've got to make an adder with numbers beyond the
integer storage limits.My program can excute successfully on VC.But it gets
wrong on cygnus or cygwin.I don't kown why.Could you please give me some
help?Thanks very much.
PS: #include<stdio.h>
#include<stdlib.h>
void sum(int a[30],int b[30]);
int i = 0,j = 0,k2;
int s[30]={0};
int main()
{
char c1,c2;
int x;
int num1[30],num2[30];
printf("enter the first number:");
while( ( c1 = getchar() ) != '\n'){
i++;
num1[i] = atoi(&c1);
}
printf("enter the second number:");
while( ( c2 = getchar() ) != '\n'){
j++;
num2[j] = atoi(&c2);
}
if(i >= j)
k2 = i + 1;
else
k2 = j + 1;
sum(num1,num2);
for(x = 1;x <= k2;x++){
printf("%d",s[x]);
}
return 0;
}
void sum(int a[30],int b[30])
{
int y,k;
if(i >= j){
k = i + 1;
while(i != 0 && j != 0){
s[k--] = a[i--] + b[j--];
}
while(k != 0 && i != 0){
s[k--] = a[i--];
}
}/*end if*/
else{
k = j + 1;
while(i != 0 && j != 0){
s[k--] = a[i--] + b[j--];
}
while(k != 0 && j != 0){
s[k--] = b[j--];
}
}/*end else*/
for(y = k2;y >= 1;y-- ){
if(s[y] > 10){
s[y] = s[y] - 10;
s[y - 1] = s[y - 1] + 1;
}/*end if*/
}/*end for*/
}/*end sum*/
___________________________________________________________
雅虎邮箱,终生伙伴!
http://mail.yahoo.com.cn/
[Non-text portions of this message have been removed]