c语言如何实现两个大整数相加
时间: 2024-05-03 19:21:06 浏览: 12
您好!可以使用字符串或数组存储大整数,从低位到高位逐位相加,并对位数大于等于10的进行进位操作,最终输出相加后的大整数。具体实现方法可以参考下面的代码:
```
#include <stdio.h>
#include <string.h>
#define MAX_LEN 10000 // 可根据实际情况设定
void add(char* num1, char* num2, char* result)
{
int carry = 0, len1 = strlen(num1), len2 = strlen(num2);
int i = len1 - 1, j = len2 - 1, k = 0;
while (i >= 0 || j >= 0 || carry > 0) {
int n1 = i >= 0 ? num1[i] - '0' : 0;
int n2 = j >= 0 ? num2[j] - '0' : 0;
int sum = n1 + n2 + carry;
result[k++] = sum % 10 + '0';
carry = sum / 10;
i--, j--;
}
result[k] = '\0';
// 翻转结果串
int len = strlen(result);
for (int m = 0, n = len - 1; m < n; m++, n--) {
char temp = result[m];
result[m] = result[n];
result[n] = temp;
}
}
int main()
{
char num1[MAX_LEN], num2[MAX_LEN], result[MAX_LEN];
// 输入两个大整数
printf("请输入要相加的两个大整数:\n");
scanf("%s %s", num1, num2);
// 计算
add(num1, num2, result);
// 输出结果
printf("计算结果为:%s\n", result);
return 0;
}
```