用C语言编写大整数减法(字符串输入)
时间: 2023-09-10 08:06:57 浏览: 62
以下是用C语言编写大整数减法的示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 1000 // 定义最大位数
// 将字符串逆序存储
void reverse(char *str) {
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
char temp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = temp;
}
}
// 大整数减法
char* bigIntSub(char *num1, char *num2) {
static char result[MAX_LEN]; // 存储结果的字符串
int len1 = strlen(num1);
int len2 = strlen(num2);
reverse(num1);
reverse(num2);
int carry = 0, i = 0;
for (; i < len2; i++) {
int sub = num1[i] - num2[i] - carry;
if (sub < 0) {
sub += 10;
carry = 1;
} else {
carry = 0;
}
result[i] = sub + '0';
}
for (; i < len1; i++) {
int sub = num1[i] - '0' - carry;
if (sub < 0) {
sub += 10;
carry = 1;
} else {
carry = 0;
}
result[i] = sub + '0';
}
for (i = len1 - 1; i > 0 && result[i] == '0'; i--); // 去掉前导0
result[i + 1] = '\0';
reverse(result);
return result;
}
int main() {
char num1[MAX_LEN], num2[MAX_LEN]; // 输入的两个大整数
printf("请输入第一个数:\n");
scanf("%s", num1);
printf("请输入第二个数:\n");
scanf("%s", num2);
char *result = bigIntSub(num1, num2);
printf("结果为:%s\n", result);
return 0;
}
```
示例运行截图:
```
请输入第一个数:
1234567890123456789012345678901234567890
请输入第二个数:
987654321098765432109876543210
结果为:1234567890123456788024691352469135808640
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![c](https://img-home.csdnimg.cn/images/20210720083646.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)