问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c的数组的方法计算超长整数加减法

发布网友 发布时间:2022-10-02 11:09

我来回答

1个回答

热心网友 时间:2023-10-07 14:29

#include
<stdio.h>
#include<string.h>
int
main()
{
int
a1[2001],a2[2001],a3[2001],he,g,i,p,length,length1,length2,
flag=0;
char
s[2001];
for
(i=0;i<=2000;i++)
{
a1[i]=0;
a2[i]=0;
a3[i]=0;
}
printf("s1=");
gets(s);
/*将
字符数组
(即
被加数
)倒序存储到
数值
型数组(即a1[2001])中*/
length1=strlen(s);;
for
(i=0;i<length1;i++)
a1[i]=s[length1-i-1]-'0';
printf("s2=");
gets(s);
/*将字符数组(即
加数
)倒序存储到数值型数组(即a2[2001])中*/
length2=strlen(s);
for
(i=0;i<length2;i++)
a2[i]=s[length2-i-1]-'0';
length=length1>length2?length1++:length2++;
/*这里确定计算结果的
位数
:两数之和的位数最大为较大的数的位数加1*/
g=0;
printf("1--加法\n");
printf("2--减法\n");
scanf("%d",&p);
if(p==1)
{for
(i=0;i<=length;i++)
{
he=a2[i]+a1[i]+g;
g=he/10;
/*这里用g表示进位标志,如6+6的和为12,则进位标志g的值为1*/
a3[i]=he%10;
}
if
(a3[length]==0)
length--;
/*由于最高位是在两个加数中的较大数的位数人为加1,实际结果有可能没有这么多的位数,就会出现0368这样的
数字
,则应去掉
前面
的0,成为368*/
printf("s1+s2=");
}
if(p==2)
{
/*
可以先判断一下那个数比较大
*/
for
(i=length-1;
i>=0;
i--)
{
if
(a1[i]
>
a2[i]
)
{
for
(i=0;i<=length;i++)
{
if(a1[i]-g>=a2[i])
{
a3[i]=a1[i]-g-a2[i];
g=0;
}
else
{
a3[i]=a1[i]-g+10-a2[i];
g=1;
}
}
flag
=
1;
break;
}
else
if
(
a1[i]
<
a2[i]
)
{
for
(i=0;i<=length;i++)
{
if(a2[i]-g>=a1[i])
{
a3[i]=a2[i]-g-a1[i];
g=0;
}
else
{
a3[i]=a2[i]-g+10-a1[i];
g=1;
}
}
flag
=
2;
break;
}
}
while(a3[length]==0)
length--;
printf("s1-s2=");
}
if
(flag
==
0)
{
printf("0");
return
0;
}
else
if
(flag
==
2)
{
printf("-");
}
for
(i=length;i>=0;i--)
printf("%d",a3[i]);
/*输出得到的和即a3[i]的值*/
printf("\n");
return
0;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
NBA下赛季常规赛MVP和总决赛MVP会是谁 吴前当选CBA常规赛MVP,他是实至名归吗? 如何申请安电表 如何申请独立电表 用电量大可以增加电表吗 出租他人铺面,原先房东已经安装过电表,因为用电量大,我想自己装电表可以... 梦见有个老人送佛画给我、让我在家供佛 ...分之一米还剩多少米如果截去四分之一还剩几分之几还剩多少米?_百度... 一根竹竿长四米,截去它的四分之三后,这根竹竿还剩全长的几分之几? ...这根绳子的几分之几后还剩下他的3/1,用去了( )m,还剩下( )_百度知... 米动手表青春版里面有些项目用不到,能设置和隐藏吗? 用鸡蛋能做什么 草蜥的外形特征 我,秦始皇,打钱什么梗 华泰证券。 卖了股票的钱怎么转到银行卡? 请问华泰证券当天抛出股票的钱可以当天转帐取出来吗? 华泰证券账户有余额可以认购完提现吗 经常锻炼对身体好处有哪些? 淘宝中带买了单品,没买带赠品的套餐怎么办?赠品套餐和单品价格一样的!1 我上淘宝买东西,有套餐1,套餐2之类的,但价格都不一样,什么意思啊? 我在淘宝拍下了一个手机,我选的是套餐,和原始价格不一样,如果卖家不按我买的套餐发货该如何维权? 开学第一课观后感500字怎么写 2022开学第一课优秀观后感500字 一句关于时间名言的启示 为什么中国在非洲投资 儿童晚上总失眠怎么办 宝宝失眠了应该怎么办 孩子失眠要怎么办 收到诈骗短信不小心回复了个1,怎么办 会有什么损失吗? 泥鳅烧香芋的家常做法大全怎么做好 长整数的减法运算!来个大神帮我看看 超长正整数减法(用链表做) 求助~~c语言做超大整数的加减,用栈实现 求潘长江版《八旗子弟》下载地址,可再追加奖励! 谁有潘长江主演的八旗子弟? 潘长江主演的八旗子弟 奇迹锁的盗贼常用技术手段 绑定手机号怎么解除 绑定手机号解除方法 怎么解除绑定和手机号 削好的莴笋怎么保存 如何存放削好的莴笋 手机放了两年没用会不会有什么毛病 几十台手机两年之内不用的话,会不会有影响?怎样保养可以将影响降到最低呢? 谷歌安装器怎么用 需Root权限 谷歌安装器如何root 南瓜怎么打枝 南瓜如何打枝分享 红米NOTE4刷机卡在50%刷入tz.mbn怎么办 中秋节的来历和风俗手抄报 中秋节的来历和风俗手抄报内容怎么写_百度知 ... 中秋节手抄报是什么? 城市房地产抵押管理办法的内容 新年年粑怎么做