用线性表设计一个程序实现两个任意长的整数求和运算,求c语言实现代码
时间: 2023-05-26 12:04:15 浏览: 63
以下是一个简单的程序实现两个任意长的整数求和运算:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 1000 // 定义最大整数长度
void reverse(char s[]) { // 反转字符串函数
int i, j, c;
for (i = 0, j = strlen(s) - 1; i < j; i++, j--) {
c = s[i];
s[i] = s[j];
s[j] = c;
}
}
void add(char a[], char b[], char result[]) { // 长整数加法函数
int len_a = strlen(a);
int len_b = strlen(b);
int i, j, k, carry = 0, sum;
char temp[MAX_LEN];
// 保证a的长度不小于b的长度
if (len_a < len_b) {
char* t;
t = a;
a = b;
b = t;
len_a ^= len_b; // 交换长度
len_b ^= len_a;
len_a ^= len_b;
}
// 计算和
for (i = 0, j = 0; i < len_a; i++) {
sum = a[i] - '0' + carry;
if (j < len_b) {
sum += b[j++] - '0';
}
temp[k++] = sum % 10 + '0';
carry = sum / 10;
}
if (carry != 0) {
temp[k++] = carry + '0';
}
temp[k] = '\0';
// 反转字符串
reverse(temp);
// 去除前导零
i = 0;
while (temp[i] == '0') {
i++;
}
if (i == k) {
result[0] = '0';
result[1] = '\0';
} else {
for (j = 0; j < k - i; j++) {
result[j] = temp[i + j];
}
result[j] = '\0';
}
}
int main() {
char a[MAX_LEN], b[MAX_LEN], result[MAX_LEN];
// 输入两个整数
printf("请输入第一个整数:");
scanf("%s", a);
printf("请输入第二个整数:");
scanf("%s", b);
// 计算和
add(a, b, result);
// 输出结果
printf("和为:%s\n", result);
return 0;
}
```
这个程序通过字符串数组来存储整数,使用反转字符串和长整数加法的方法来实现任意长整数的加法运算。在输入和输出时,使用%s格式化符号来输出字符串,而不是%d格式化符号来输出整数,这也是需要注意的地方。
相关推荐
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)