当前位置:首页 » 编程语言 » c语言大整数

c语言大整数

发布时间: 2022-04-13 12:28:40

c语言 大整数乘法

#include <stdio.h>
#include<string.h>
int main()
{
int i,j,k=0;
char a[201]="0",b[201]="0",c[401]="0"; //这里将c[0]设为‘0’,影响到下面输入
scanf("%s%s",a,b);
for (i=0;i<=strlen(a)-1;i++)
for (j=0;j<=strlen(b)-1;j++)
{c[i+j+1]+=(a[i]-'0')*(b[j]-'0');}
k=(strlen(a)+strlen(b)-1);
for (;k>=1;k--)
{
c[k-1]+=c[k]/10;
c[k]=c[k]%10; //这一步会将c[k]破坏,所以倒转
}
if(c[0]!='0') //若最高位为0,则不输出;
printf("%c",c[0]);
j=strlen(a)+strlen(b);
for (i=1;i<j;i++)
{
printf("%d",c[i]);
}
return 0;
}
======================================
系统报错的原因是c[1]是char型,不是字符串数组,要用%c而是%s,我想你是把i写成了1了

Ⅱ C语言数组存储超大整数

模拟整数除法即可:

#include<stdio.h>
intmain()
{
charstr[101];
intn,i,bcs;
scanf("%d",&n);
getchar();
while(n--){
scanf("%s",str);
bcs=0;
for(i=0;str[i]!='';++i){
bcs=10*bcs+str[i]-'0';
bcs%=9;
}
if(bcs==0){
printf("Y ");
}
else{
printf("N ");
}
}
return0;
}

Ⅲ C语言大整数的四则运算

#include<stdio.h>
intmul(inta[],intk)
{inti,t=0;
for(i=1;i<=a[0];i++)
{a[i]=k*a[i]+t;
t=a[i]/10;
a[i]%=10;
}
for(i=a[0];t;)
{a[++a[0]]=t%10;
t/=10;
}
}
intmain()
{inti,n,a[102]={1,1};
scanf("%d",&n);
printf("%d!=",n);
for(i=2;i<=n;i++)
mul(a,i);
for(i=a[0];i>0;i--)
printf("%d",a[i]);
return0;
}

Ⅳ c语言中怎样输入一个很大的整数

可以利用字符数组来存放整数的各位数值,即将整数当成一串字符来输入。

如果要输入12345678901234567890,则定义一个char型数组a[20],将用户输入的整数当成一串字符存入字符数组a中。


具体实现方法可以参考如下程序段:

chara[20];
scanf("%s",a);//输入12345678901234567890,即可将该整数输入到字符数组a当中
//则数组a中各元素值为a[0]='1',a[1]='2',a[2]='3',.......,a[19]='0'
//在进行运算的时候将字符转换为数字即可(即a[i]-'0')

Ⅳ C语言中怎样表示大整数

long long是最大的,应该可以表示几十位把
是在不行,就用数组来做,这个可以做相应的加减乘除子函数

Ⅵ c语言程序设计:大整数的加减法

用rand()产生随机数,rand()会产生从0到一个很大的数,我记不清了,反正很大。如果想出现100以内的,就用rand()%100。你可以定义三个int型整数,两个表示加或者减的对象,另一个标示加或者减,因为只要出现两种情况之一,所以可以用rand()%2,这样只会有0,1两种情况来标示加或者减。下面的就很容易了inta,b,i,c;for(i=0;i<10;i++){a=rand()%100;b=rand()%100;c=rand()%2;if(c==0)//标示加法{printf("%d+%d=%d\n",a,b,a+b);}else{printf("%d-%d=%d\n",a,b,a-b);}}大致就这样,希望给你点帮助

Ⅶ C语言中的大整数储存问题

这要知道
原码、补码与反码的关系。
在c语言中,负数是用补码表示的。
最高位为1,表示负数,为0表示正数
以八位为例,8在内存中的形式是00001000;
-8就是8的原码的反码+1
反码:11110111
补码:11110111
+
1
=11111000。这就是其形式。
楼上给出的是16位形式~

Ⅷ C语言中最大的整型数和最小的整型数是什么

C语言中最大的无符号整型常数为65535,最小的无符号整型常数为0。最大的有符号整型常数为32767,最小的有符号整型常数为-32768。

在C编译系统中,基本整型的长度也为16位,因此表示的数的范围也是有限定的。十进制无符号整常数的范围为0~65535,有符号数为-32768~+32767。如果使用的数超过了上述范围,就必须用长整型数来表示。长整型数是用后缀“L”或“l”来表示的。

(8)c语言大整数扩展阅读:

无符号整型常数的类型说明符为unsigned。可以单独使用代表unsigned int,也可以作为前缀,表示无符号整数,即永远为非负的整型变量,大于0的数据范围约扩大为原来的2倍。各种无符号类型量所占的内存空间字节数与相应的有符号类型量相同。但由于省去了符号位,故不能表示负数。

长整数158L和基本整常数158在数值上并无区别。但对158L,因为是长整型量,C编译系统将为它分配4个字节存储空间。而对158,因为是基本整型,根据计算机的内部字长和编译器的版本分配2或4个字节的存储空间。因此在运算和输出格式上要予以注意,避免出错。

Ⅸ C语言怎么计算大整数

在C里面,最大的整型是unsigned long
在C++里面,最大的是__int64,也就是LONGLONG,是64位的整型。
atoi函数的返回值是int型的,如果你想要大整数,可以用_atoi64函数,它的返回值是__int64。

如果还想超过LONGLONG,那么自己定义一个类型,或者用LONGLONG数组来实现吧。不过就没有直接的类似atoi的函数可以用了。

另外,不要求很精确的话,用double型来代替整数也可以。有atof函数可以用。

热点内容
一台服务器多个同段地址怎么通讯 发布:2025-01-20 16:45:58 浏览:734
i7源码 发布:2025-01-20 16:40:48 浏览:983
抽签源码 发布:2025-01-20 16:38:35 浏览:62
密码箱怎么锁住 发布:2025-01-20 16:32:17 浏览:31
编译隔离 发布:2025-01-20 16:28:54 浏览:358
从哪里看自己的qq账号和密码 发布:2025-01-20 16:22:33 浏览:400
sql语句动态 发布:2025-01-20 16:18:22 浏览:298
sql表或的语句 发布:2025-01-20 16:00:49 浏览:163
西瓜视频怎么缓存不了电影了 发布:2025-01-20 16:00:45 浏览:890
javatimer 发布:2025-01-20 15:55:56 浏览:64