用c语言代码写,不要太复杂
时间: 2024-12-15 12:15:49 浏览: 1
在C语言中,我们可以使用字符数组来表示大整数,并通过循环来进行逐位相加或相减。以下是一个简单的实现,仅限于两个正整数的加法,没有考虑进位或溢出等问题:
```c
#include <stdio.h>
#include <string.h>
// 定义大整数结构体
typedef struct {
int digits[100];
int length;
} BigInt;
// 初始化大整数
BigInt initBigInt(int num) {
BigInt bigInt;
bigInt.length = 0;
while (num != 0) {
bigInt.digits[bigInt.length++] = num % 10;
num /= 10;
}
return bigInt;
}
// 将大整数转换为字符串便于打印
void printBigInt(BigInt bigInt) {
char str[100];
int i;
for (i = bigInt.length - 1; i >= 0; i--) {
str[i] = bigInt.digits[i] + '0';
}
str[i + 1] = '\0'; // 结束符
printf("%s\n", str);
}
// 加法函数
BigInt addBigNumbers(BigInt a, BigInt b) {
BigInt result;
result.length = a.length + b.length;
int carry = 0;
for (int i = 0; i < a.length || i < b.length; i++) { // 比较长度,保证至少有一个完整的结果位
int sum = carry + a.digits[i] + b.digits[i];
result.digits[i] = sum % 10;
carry = sum / 10;
}
if (carry > 0) {
result.digits[result.length] = carry;
result.length++;
}
return result;
}
int main() {
BigInt num1 = initBigInt(12345);
BigInt num2 = initBigInt(67890);
printBigInt(num1); // 输出 12345
printBigInt(num2); // 输出 67890
BigInt sum = addBigNumbers(num1, num2);
printBigInt(sum); // 输出 80235
return 0;
}
```
阅读全文