c語言兩個數組相加
Ⅰ c語言 兩個任意長度一維數組的加法
#include<stdio.h>
#include<string.h>
char s[100001];
int a[100001],b[100001],c[100001];
int main(){
long i,j,k,m,n;
long alen,blen,clen;
gets(s);
alen=strlen(s);
for(i=alen-1;i>=0;i--)
a[alen-i]=s[i]-'0';
gets(s);
blen=strlen(s);
for(i=blen-1;i>=0;i--)
b[blen-i]=s[i]-'0';
if(alen>blen)
clen=alen;
else
clen=blen;
for(i=1;i<=clen;i++)
c[i]=a[i]+b[i];
for(i=1;i<=clen;i++)
if(c[i]>9){
c[i+1]++;
c[i]-=10;
if(i==clen)
clen++;
}
for(i=clen;i>=1;i--)
printf("%d",c[i]);
printf("\n");
return 0;
}
Ⅱ 用c語言數組計算兩個數的四則運算,考慮兩個數非常大的情況
假設A
100位、B
100位分別存到數組m、n中。(位數不一樣時,小的數補零填充)
1、加法時,從低位按位相加、進位
2、減法時,重高位開始比較大小,然後從低位開始按位減、借位
3、乘法時,低位按位乘、進位
4、除法時,用模運算求整數商,小數部分折半減,逐步精確
附:直接點的方法也可以先轉化成二進制、然後用補碼運算