长整数、高精度运算c语言代码
时间: 2023-09-16 21:15:02 浏览: 43
以下是一个简单的高精度加法函数的C语言代码:
```
#include <stdio.h>
#include <string.h>
#define MAXLEN 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 - 1 - i];
str[len - 1 - i] = temp;
}
}
void add(char *num1, char *num2, char *result) {
int len1 = strlen(num1);
int len2 = strlen(num2);
int carry = 0, sum = 0;
int i = 0, j = 0, k = 0;
char temp[MAXLEN];
while (i < len1 && j < len2) {
sum = (num1[i] - '0') + (num2[j] - '0') + carry;
temp[k++] = (sum % 10) + '0';
carry = sum / 10;
i++;
j++;
}
while (i < len1) {
sum = (num1[i] - '0') + carry;
temp[k++] = (sum % 10) + '0';
carry = sum / 10;
i++;
}
while (j < len2) {
sum = (num2[j] - '0') + carry;
temp[k++] = (sum % 10) + '0';
carry = sum / 10;
j++;
}
if (carry > 0) {
temp[k++] = carry + '0';
}
temp[k] = '\0';
reverse(temp);
strcpy(result, temp);
}
int main() {
char num1[MAXLEN];
char num2[MAXLEN];
char result[MAXLEN];
printf("Enter the first number: ");
scanf("%s", num1);
printf("Enter the second number: ");
scanf("%s", num2);
add(num1, num2, result);
printf("The result is: %s\n", result);
return 0;
}
```
这个函数可以处理两个字符串形式的非负整数相加,返回结果也是字符串形式。该函数使用了一个辅助函数 `reverse`,用于反转字符串。
这个函数使用了三个指针 `num1`、`num2` 和 `result` 来表示两个加数和结果。函数首先计算两个加数的长度,然后从低位到高位遍历两个加数,将相应位上的数字相加并保存到一个临时数组中。最后,将临时数组反转并复制到结果字符串中。
需要注意的是,该函数没有处理负数的情况,也没有处理进位的情况。如果需要实现更复杂的高精度运算,需要进一步扩展该函数。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)