20位数以内的加减法c语言,要求可以通过输入两个数来完成加减法的运算并输出
时间: 2024-10-14 14:09:03 浏览: 31
c 语言程序源代码
在C语言中,如果你想编写一个简单的程序来处理20位数以内的加减法,你需要考虑使用数组来存储每一位数字,并使用循环结构来进行计算。以下是一个基本的示例,演示如何实现加法操作,减法操作原理类似:
```c
#include <stdio.h>
// 函数声明
int add(int a[], int b[], int len);
int main() {
int num1[21], num2[21], result[21] = {0}, len, i;
// 输入两个20位数
printf("请输入第一个20位整数(用空格分隔每个数字): ");
for (i = 0; i < 20; scanf("%d", &num1[i]), ++i);
printf("请输入第二个20位整数(用空格分隔每个数字): ");
for (i = 0; i < 20; scanf("%d", &num2[i]), ++i);
// 输入的长度用于遍历数组
len = i;
// 加法操作
result = add(num1, num2, len);
// 输出结果
printf("两数相加的结果是: ");
for (i = 0; i < len; ++i) {
printf("%d", result[i]);
if (i != len - 1)
printf("%02d", 0); // 如果不是最后一个数字,在其后添加两位零占位符
}
printf("\n");
return 0;
}
// 加法函数实现
int add(int a[], int b[], int len) {
int sum[len], carry = 0;
for (int i = len - 1; i >= 0; --i) {
sum[i] = a[i] + b[i] + carry;
carry = sum[i] / 10; // 计算进位
sum[i] %= 10; // 取余数作为当前位的值
}
// 将进位部分添加到结果的开头
while (carry > 0) {
sum[0]++;
carry = sum[0] / 10;
sum[0] %= 10;
}
return sum;
}
```
同样的,对于减法操作,你可以创建一个`subtract()`函数,步骤类似于上述的加法过程。注意,这里假设用户输入的是有效且不超过20位的整数。
阅读全文