用整型数组表示10进制大整数(超过2^32的整数),数组的每个元素存储大整数的一位数字,实现大整数的加减法。用c语言实现
时间: 2024-03-14 12:46:26 浏览: 71
C语言实现大整数加减法
以下是用C语言实现大整数加法的示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 1000 // 定义大整数的最大长度
// 大整数加法
void bigIntAdd(int num1[], int num2[], int res[]) {
int carry = 0; // 进位
int len1 = strlen(num1);
int len2 = strlen(num2);
int i = len1 - 1, j = len2 - 1, k = 0;
while (i >= 0 || j >= 0) {
int x = i >= 0 ? num1[i--] - '0' : 0;
int y = j >= 0 ? num2[j--] - '0' : 0;
int sum = x + y + carry;
res[k++] = sum % 10;
carry = sum / 10;
}
if (carry) {
res[k++] = carry;
}
for (i = 0, j = k - 1; i < j; i++, j--) {
int tmp = res[i];
res[i] = res[j];
res[j] = tmp;
}
res[k] = '\0';
}
int main() {
char num1[MAX_LEN], num2[MAX_LEN];
int res[MAX_LEN];
printf("请输入两个大整数:\n");
scanf("%s%s", num1, num2);
bigIntAdd(num1, num2, res);
printf("结果为:%s\n", res);
return 0;
}
```
大整数减法的实现方法与大整数加法类似,不过需要注意减数是否小于被减数,如果是需要借位,否则需要补位。
阅读全文