c语言中怎么存储一个很大很大的数
C语言的系统类型,均有大小的限制。超出这个存储范围,就无法用该类型进行存储。所以需要根据数据规模,来选择存储类型。
当需要存储的数很大很大,超出所有可以类型可以表示的范围时,比如一个100位的10进制数,就需要用字符串的方式进行存储。这种存储方式,在算法中称为大数存储,对这种大数的计算,称为大数计算。
扩展资料:
顺序结构:
顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。
例如:a = 3,b = 5,现交换a,b的值,这个问题就好像交换两个杯子里面的水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为:c = a; a = b; b = c;执行结果是a = 5,b = c = 3如果改变其顺序。
写成:a = b; c = a; b =c;则执行结果就变成a = b = c = 5,不能达到预期的目的,初学者最容易犯这种错误。顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算、输出三步曲的程序就是顺序结构。
例如计算圆的面积,其程序的语句顺序就是输入圆的半径r,计算s = 3.14159*r*r,输出圆的面积s。不过大多数情况下顺序结构都是作为程序的一部分,与其它结构一起构成一个复杂的程序,例如分支结构中的复合语句、循环结构中的循环体等。
参考资料来源:百度百科-c语言
C语言的系统类型,均有大小的限制。超出这个存储范围,就无法用该类型进行存储。
所以需要根据数据规模,来选择存储类型。
当需要存储的数很大很大,超出所有可以类型可以表示的范围时,比如一个100位的10进制数,就需要用字符串的方式进行存储。这种存储方式,在算法中称为大数存储,对这种大数的计算,称为大数计算。
以下是一个输入最多不超过1000位的10进制数,并将其输出的代码:
#include <stdio.h>
int main()
{
char s[1001];
scanf("%s",s);//输入数据
printf("%s\n",s);//输出读取到的大数。
return 0;
}
如果要求精度高(比如存储较大的指数,不允许截断误差存在),或者是已经超过了浮点型数据允许的最大值,可用多个字节来存储,每个字节存储其中一部分位段。可根据你的需要来设定所需字节数。
比如,计算7的34次方的精确值,就需要至少4个整形来存储(32位处理器,一个整形数据占用4个字节),即16个字节。
具体可参见《计算机代数》教科书。
储存大数时需要借助字符数组储存
如存储11111111111这个数字,可以用
char num[] = "11111111111";