简介:
C语言中,整型占4字节,现在要计算两个100(假设)位以内的数想加,如果只是用整型去存储,明显就会越界。那么,我们有什么好的方法去完成这一操作呢?
1.用数组实现
数组中可以可以存储一定长度的字符串。
// 移位 void move_num(char num[]) { int n = strlen(num); int j = 100; int i; for(i=1;i<=n;i++) { num[j] = num[n-i]; j--; } // 在空余位上补0 while(j>=0) { num[j] = '0'; j--; } } // 交换(数组中存放的都是字符,要转换成整数才可以相加) void conv_num(char num[]) { int i ; for(i=0;i<100;i++) { num[i] = num[i] - '0'; } } // 相加加 void add(char num1[],char num2[]) { int i; for(i = 100; i >0;i--) { num1[i] = num1[i] + num2[i]; if(num1[i] >= 10) { num1[i-1] += num1[i] / 10; // 进位 num1[i] = num1[i] % 10; } } } // 输出 void print(char num[]) { int i = 0; // 让前面的0不输出 while(num[i] == '0') { i++; } for(;i<100;i++) { printf("%s",num[i]); } }