C语言中,最长的的整数类型是:unsigned long int。占用4个字节,最大可以表示的数值是:2,147,483,647。
你的7,654,321,000,已经超过了C语言最长“内置类型”的整数范围。如果要输出这个值,相对比较容易,把这个值用string类型表示即可,如下:
char *big_number = "7654321000";
printf("The number is %s\n", big_number);
也许你的本意是:在C语言中,对于超长的数字,如何运算?如果是这样,就要多说几句。实际上基本思路,跟我在这里的回复类似:
1. 所有的“超长数”都用“char *”来表示,可以用typedef定义一个专用类型,比如:
typedef char *big_number;
注意,这种类型在使用时,需要给数字分配空间。当然,如果已经知道了“超长整数”的长度上限,更好的办法是采用固定长度字符串:
#define MAX_BIG_NUM_LEN 20
typedef char[MAX_BIG_NUM_LEN] big_numer;
2. 自己用函数实现“超长整数”的运算。如:
big_number bignum_add(big_number op1, big_number op2);
big_number bignum_sub(big_number op1, big_number op2);
big_number bignum_mul(big_number op1, big_number op2);
big_number bignum_div(big_number op1, big_number op2);
...
注意,采用printf()之类函数输出的时候,要用%s的转换符。
先说这么多,有问题继续交流,谢谢。
考虑到大小,用int是不行的,可以用float或double类型,要想输出题目的格式可以用%.0f或%.0lf。
把题目中的数字当做字符串输出,用%s。
方法还是蛮多的,暂时就想到两种