我需要编写一个C程序,将两个数字相加,每个数字为100+;数字?

我需要编写一个C程序,将两个数字相加,每个数字为100+;数字?,c,C,需要编写一个C程序,将两个数字相加,每个数字都是100+位 我不希望使用数组的方法来实现这一点。 请建议我如何存储这些数字(至少512位大小)并执行算术运算?您可以使用任意精度的算术库,例如用于此 一个快速的C示例: #include <gmp.h> mpz_t a, b; const char *huge_decimal_num1 = "46819294521564960351683095841209562359068"; const char *huge_decimal_nu

需要编写一个C程序,将两个数字相加,每个数字都是100+位

我不希望使用数组的方法来实现这一点。 请建议我如何存储这些数字(至少512位大小)并执行算术运算?

您可以使用任意精度的算术库,例如用于此

一个快速的C示例:

#include <gmp.h>

mpz_t a, b;

const char *huge_decimal_num1 = "46819294521564960351683095841209562359068";
const char *huge_decimal_num2 = "6904120584864540916814056801234572451249681";

mpz_init_set_str (a, huge_decimal_num1, 10);    
mpz_init_set_str (b, huge_decimal_num2, 10);    
mpz_add (a, a, b); // a = a + b

printf("%s + %s = %s\n", 
 huge_decimal_num1, huge_decimal_num2, mpz_get_str (NULL, 10, a));
#包括
mpz_t a,b;
const char*ground_decimal_num1=“46819294521564960351683095841209562359068”;
const char*ground_decimal_num2=“6904120584864540916814056801234572451249681”;
mpz_init_set_str(a,巨大的十进制数m1,10);
mpz_init_set_str(b,巨大的十进制数,10);
添加(a,a,b);//a=a+b
printf(“%s+%s=%s\n”,
巨大的十进制数m1,巨大的十进制数m2,mpz,get,str(NULL,10,a));

可能的重复:是的,必须是作业。