A+B(big number) 用c语言
时间: 2024-03-16 16:42:32 浏览: 95
在 C 语言中,可以使用数组来存储大数,并模拟手算的过程实现大数的加法。
例如,以下是实现大数加法的 C 代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 1000
void reverse(char *s, int len) {
int i, j;
char c;
for (i = 0, j = len - 1; i < j; i++, j--) {
c = s[i];
s[i] = s[j];
s[j] = c;
}
}
void add(char *a, char *b, char *result) {
int carry = 0, i, j;
int len_a = strlen(a), len_b = strlen(b);
char sum[MAX_LEN];
for (i = 0, j = 0; i < len_a && j < len_b; i++, j++) {
int digit = (a[i] - '0') + (b[j] - '0') + carry;
carry = digit / 10;
digit %= 10;
sum[i] = digit + '0';
}
while (i < len_a) {
int digit = (a[i] - '0') + carry;
carry = digit / 10;
digit %= 10;
sum[i] = digit + '0';
i++;
}
while (j < len_b) {
int digit = (b[j] - '0') + carry;
carry = digit / 10;
digit %= 10;
sum[j] = digit + '0';
j++;
}
if (carry) {
sum[i++] = carry + '0';
}
sum[i] = '\0';
reverse(sum, i);
strcpy(result, sum);
}
int main() {
char a[MAX_LEN], b[MAX_LEN], result[MAX_LEN];
printf("Enter first number: ");
scanf("%s", a);
printf("Enter second number: ");
scanf("%s", b);
add(a, b, result);
printf("Result: %s\n", result);
return 0;
}
```
该代码中,`add` 函数实现了大数加法,`reverse` 函数用于翻转字符串,`MAX_LEN` 定义了最大长度。在 `main` 函数中,读入两个大数,调用 `add` 函数进行加法运算,最终输出结果。
阅读全文