小翔现在有两个超级大的数字,请你帮忙计算一下这两个数字的和。如何用c语言写该程序
时间: 2024-02-06 18:10:16 浏览: 182
你好,以下是一个简单的 C 语言程序,可以计算两个超级大的数字的和:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 1000
int main() {
char num1[MAX_LEN], num2[MAX_LEN];
int len1, len2, carry = 0, sum[MAX_LEN] = {0};
// 读入两个数字
scanf("%s%s", num1, num2);
len1 = strlen(num1);
len2 = strlen(num2);
// 从低位到高位做加法
for (int i = 0; i < MAX_LEN; i++) {
int digit1 = i < len1 ? num1[len1 - i - 1] - '0' : 0;
int digit2 = i < len2 ? num2[len2 - i - 1] - '0' : 0;
sum[i] = digit1 + digit2 + carry;
if (sum[i] >= 10) {
sum[i] -= 10;
carry = 1;
} else {
carry = 0;
}
}
// 输出结果
int i;
for (i = MAX_LEN - 1; i >= 0; i--) {
if (sum[i] != 0) {
break;
}
}
if (i < 0) {
printf("0");
} else {
for (; i >= 0; i--) {
printf("%d", sum[i]);
}
}
printf("\n");
return 0;
}
```
这个程序首先读入两个字符串表示的数字,然后从低位到高位做加法,并记录进位。最后输出结果时,需要注意去掉前导零。