实现两个小于100位正整数相加的c语言编码
时间: 2024-01-30 12:02:59 浏览: 68
以下是实现两个小于100位正整数相加的 C 语言代码:
```c
#include <stdio.h>
#include <string.h>
#define N 100
int main() {
char a[N], b[N], c[N];
int i, j, k, len1, len2, carry = 0;
printf("请输入第一个数:");
scanf("%s", a);
printf("请输入第二个数:");
scanf("%s", b);
len1 = strlen(a);
len2 = strlen(b);
for (i = len1 - 1, j = len2 - 1, k = 0; i >= 0 || j >= 0; i--, j--, k++) {
int x = i < 0 ? 0 : a[i] - '0';
int y = j < 0 ? 0 : b[j] - '0';
int sum = x + y + carry;
c[k] = sum % 10 + '0';
carry = sum / 10;
}
if (carry) {
c[k++] = carry + '0';
}
c[k] = '\0';
printf("相加结果为:%s\n", strrev(c)); // 注意要输出反转后的结果
return 0;
}
```
该程序使用了字符数组来存储输入的两个数和它们的和,同时使用了三个变量 i、j、k 来分别表示 a、b、c 数组的下标,从右向左遍历两个数,依次相加,将相加结果存放在 c 数组中,并记录进位。最后反转 c 数组,并输出相加结果。
阅读全文