超长整数的加减运算 C语言,两个超长正整数的加法
时间: 2024-03-14 21:46:02 浏览: 162
C语言实现大整数加减运算详解
5星 · 资源好评率100%
超长整数的加法可以用字符串来实现,即将整数转换为字符串,然后按位相加,最后再转换回整数。
以下是 C 语言实现超长正整数加法的代码示例:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 1000
char* add(char* a, char* b) {
char result[MAX_LEN];
int carry = 0;
int i = strlen(a) - 1;
int j = strlen(b) - 1;
int k = 0;
while (i >= 0 || j >= 0 || carry > 0) {
int x = i >= 0 ? a[i--] - '0' : 0;
int y = j >= 0 ? b[j--] - '0' : 0;
int sum = x + y + carry;
result[k++] = sum % 10 + '0';
carry = sum / 10;
}
result[k] = '\0';
strrev(result);
return strdup(result);
}
int main() {
char a[MAX_LEN], b[MAX_LEN];
scanf("%s%s", a, b);
char* c = add(a, b);
printf("%s\n", c);
free(c);
return 0;
}
```
代码中使用了一个辅助函数 `strrev`,它可以将一个字符串反转。需要注意的是,在使用 `strdup` 分配新的字符串内存后,需要调用 `free` 释放内存。
阅读全文