用c语言输出7654321000

如题所述


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的转换符。

先说这么多,有问题继续交流,谢谢。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-04-04

#include <stdio.h>
int main(void)
{
long long sj=7654321000;
printf("  sj = %lld\n",sj);
return 0;
}

第2个回答  2018-04-04

    考虑到大小,用int是不行的,可以用float或double类型,要想输出题目的格式可以用%.0f或%.0lf。

    把题目中的数字当做字符串输出,用%s。

    方法还是蛮多的,暂时就想到两种

本回答被网友采纳
相似回答