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

怎么用C语言编写一个大整数的四则运算器,求解??(急!!)

发布网友 发布时间:2022-05-10 10:11

我来回答

5个回答

热心网友 时间:2023-10-03 04:49

1.打开CodeBlocks,创建一个新的空白文件,定义头文件和主要功能,然后写程序的主体:

2.数百首先,定义所需的变量,将变量定义为浮点数,定义输入函数,定义x和y的计算变量,和c定义为变量选择计算方法。

使用switch语句,以c为选择变量,填写计算方法的选择,最学位后在主函数输入输出函数输出计算公式和结果完成程序编写:

3,运行编译后的查询,输入一个部门的计算来验证跟踪程序输出小数,程序运行正常。这就是用C语言写四则运算器的过程:

热心网友 时间:2023-10-03 04:49

给你完整代码没意思了,呵呵,给你思路
加法

两个加数长度

la=strlen(a);lb=strlen(b);
lc=la>lb?la:lb; //最长的那个

反序两个加数
strrev(a);strrev(b);
要是字符串的话,需要转换为int型的数组,ab数组一样
for(i=0;a[i];ia++)
a[i]-=48;

处理第一位,也就是个位
c[0]=a[0]+b[0];
处理中间各位
for(i=1;i<lc;i++)
{
c[i]=a[i]+b[i]+c[i-1]/10; //要加上上一位的进位

c[i-1]%=10; //取各位的个位

}
处理最高位
if(c[lc-1]>9)
{
c[lc-1]%=10;
c[lc]=1;
lc++;
}
最后转换回字符串
for(i=0;i<lc;i++)
c[i]+=48;
c[lc]='\0'; //注意要加上字符串结束符,要不然不是字符串,呵呵
反序就是结果了
strrev(c);
c字符串就是结果

减法,前面差不多,只是处理中间和后面的稍微有点区别,
首先,要判断结果是否为负数,这个要只一个标志位
if(strcmp(a.b))
flag=1;
else
{

flag=0;
strcpy(tmp,a);strcpy(a,b);strcpy(b,tmp);//如果是负数,那么要交换ab

}

求长度和反序是必须的,转换为int型也是一样的
处理个位,也一样
中间各位
for(i=1;i<lc;i++)
{
c[i]=a[i]-b[i];
if(c[i-1]<0) //借位

{

c[i]-=1;
c[i-1]+=10;

}

}
处理高位的那些0
while(c[lc-1])
lc--;
转换为char字符串
for(i=0;i<lc;i++)
c[i]+=48;
最后是标志正负号的
if(!flag)
{

c[lc-1]='-';
lc++

}
c[lc]='\0';
strrev(c);

乘法,两个算法
一个是被乘数连续加,并且乘数每次减去1,知道乘数为零,注意的是加的次数要刚好是乘数的个数
这个调用加法和减法就可以,用for循环,呵呵
代码也不算难,要是写不出来,就不要学c了

另一个是小学的竖式

123
X 12
----------
246
123
--------
1476
也就是计算中间的个位和多位的乘法,最后对好位置加起来就可以
代码也不是很难,最好做一个一位和多位的乘法子函数,调用,呵呵

除法,道理我只知道一种,就是循环减法,直到被除数小于除数为止,这个应该也不难
记录减得次数就是要得到的数据,还有一个就是余数,就是判断小于除数的那个数据

热心网友 时间:2023-10-03 04:50

具体实现算法如下:

测试结果如下:

热心网友 时间:2023-10-03 04:51

参考小学的加法
低位相加,逢十进一
用字符串储存大数,然后从字符串的末尾开始一位一位的处理

热心网友 时间:2023-10-03 04:51

你是Neu的?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
女生多大后可以不在长身高? 如何不用软件把手机投屏到电脑上手机屏幕怎样投放到电脑上 战时拒绝、故意延误军事订货罪既遂的处罚? 战时故意延误军事订货罪处罚标准 名师1+1导读方案:汤姆·索亚历险记目录 三星sm-g7200打开微信慢,无法正常收看,网速不慢。 笔记本电脑如何调亮屏幕亮度 大伙说说洗衣机要不要带烘干好 热烘干洗衣机怎么样 ef英语哪个好 设计一个C语言程序, 输入一个四则运算的表达式,在输入 = 后自动输出结果 编写一个能够进行四则运算的程序 C语言 :编写一个函数,通过计算机随机产生一道四则运算题 用C语言编一个能完成基本的四则运算和求余的函数 65年的50元新加坡纪念钞现在值多少钱? 新加坡币50十周年要卖多少钱 收藏纪念钞到底有没有价值 微信邀请过期,怎么办 企业申请加好友已过期,要怎么样才能重新加的上? 加热一份冷链餐食时间(2500w微波炉)应为?多少秒 谁给我提供微波炉的加热时间表 及火候啊??? 例如 : 鸡蛋 小火 2-3分钟 这样的 耳朵后面,就是耳垂往上一点。长了个硬包偶尔又疼又痒。请问是怎么回事?这个包是什么? 怎样拒好友消息不拉黑 如何拒好友消息而且不拉黑 sR320与SB3B0能代换吗? sB3100可用SR32O代换吗? 二极管sb3200能代3150吗? 会计分录怎么做做凭证 出纳怎样做凭证,,, 如何学好做记账凭证 MATLAB中怎么在编译器中定义一个四则运算函数 用C++写一个循环的四则运算程序并且包含子函数 如何用C#写一个四则混合运算程序(要求用控制台程序) 踏板摩托车怎样才能提速快? 踏板摩托车如何调高待速度,可以让车跑的更快么? 踏板摩托车提速慢 踏板摩托车加速不畅,总是打顿!高手进! 踏板摩托车改装、省油、提速怎么改? 踏板摩托车提速慢 怎么解决 踏板摩托车,给油提速慢,咋解决 踏板摩托车起步加速打顿是为什么 踏板摩托车启动了不能提速,只能很慢很慢的移动,要过几分钟才能慢慢正常加速,是什么原因,求各位大神帮 踏板摩托车加油门之后不能马上提速,要顿一下才会有动力,这种情况是正常现象吗? 谁有cad批量打图精灵破解版v6.4软件,能否发我一下,谢谢 求个依云CAD批量打图精灵专业版破解版? 求一个依云cad批量打图精灵破解版 求cad批量打印插件依云 完全破解版 依云CAD批量打图精灵怎么破解,网上的破解文件搞不定啊. 道闸机有哪些分类? 闸机的主要种类