c语言 高精度加减法计算机所能完成的一个基本功能就是完成数据的计算,譬如加法、减法等等.但是在任何一种计算机上,计算中能够使用的数字都是有一定范围的,超过了范围,就没法得到精确

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/22 09:58:01
c语言高精度加减法计算机所能完成的一个基本功能就是完成数据的计算,譬如加法、减法等等.但是在任何一种计算机上,计算中能够使用的数字都是有一定范围的,超过了范围,就没法得到精确c语言高精度加减法计算机所

c语言 高精度加减法计算机所能完成的一个基本功能就是完成数据的计算,譬如加法、减法等等.但是在任何一种计算机上,计算中能够使用的数字都是有一定范围的,超过了范围,就没法得到精确
c语言 高精度加减法
计算机所能完成的一个基本功能就是完成数据的计算,譬如加法、减法等等.但是在任何一种计算机上,计算中能够使用的数字都是有一定范围的,超过了范围,就没法得到精确的结果.
你现在接受了一个任务,要编写一个高精度计算器的核心部分.所谓高精度计算器,就是可以计算很大很大的数据的计算器.而你所需要编写的程序,就是真正完成高精度加法和高精度减法运算的两个函数,因为程序其它的部分已经由别人编写好了.
函数的输入、输出接口也已经定义完成,譬如 plus() 函数,它有三个参数 a、b 和 c,都是 char * 类型.a 和 b 分别是参加运算的两个整数,而 c 用来存放运算的结果.所有的数字都是以字符串的形式保存的.
注意,只需提交你自己编写的两个函数.
输入
输入的每一行是两个十进制的正整数和一个运算符,每个整数可以由最多 500 个数字组成.运算符可以是加号或者减号.
输出
对应着输入的每一行数据,输出计算的结果,每个结果占一行.
预设代码
/* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */
#include
#include
void plus(char *a, char *b, char *c);
void minus(char *a, char *b, char *c);
int main()
{
char a[1000];
char b[1000];
char c[1000];
char s[2];
while (scanf("%s %s %s", a, s, b) != EOF) {
if (s[0] == '+') {
plus(a, b, c);
} else if (s[0] == '-') {
minus(a, b, c);
}
printf("%s\n", c);
}
return 0;
}
/* PRESET CODE END - NEVER TOUCH CODE ABOVE */
自己写了七八个小时了,一直没有得到正确的答案,求大神帮忙写一下(不要用c++)求参考代码

c语言 高精度加减法计算机所能完成的一个基本功能就是完成数据的计算,譬如加法、减法等等.但是在任何一种计算机上,计算中能够使用的数字都是有一定范围的,超过了范围,就没法得到精确
等十分钟 在给你写
加法函数 好久没写程序了 本来以为十分钟能写好 .(修改:修复了个小bug)
void plus(char *a,char *b,char *c){
int i,index_a,index_b,index_c,carry=0,ten='9'+1,temp_index_c;
index_a=strlen(a)-1; // index变量指向最末一个数字
index_b=strlen(b)-1;
index_c=index_a>index_b?index_a:index_b;
temp_index_c=index_c;
if(index_a>=index_b){
for(i=index_b+1;i>=0;i--){
b[i+(index_a-index_b)]=b[i];
}
for(i=0;i=0;i--){
a[i+(index_b-index_a)]=a[i];
}
for(i=0;i=0){
c[index_c]=a[index_c]+b[index_c]+carry-'0';
if(c[index_c]>=ten){
c[index_c]-=ten-'0';
carry=1;
}
else
carry=0;
index_c--;
}
if(carry==1){
for(i=temp_index_c;i>0;i--){
c[i+1]=c[i];
}
c[0]=1;
}
c[temp_index_c+1]=0;
}

c语言 高精度加减法计算机所能完成的一个基本功能就是完成数据的计算,譬如加法、减法等等.但是在任何一种计算机上,计算中能够使用的数字都是有一定范围的,超过了范围,就没法得到精确 急!求C语言高精度加法计算的程序编程完成两个1000位以内的正整数的加法运算 一个计算机运算的代码,用C语言实现 计算机和其它一切计算工具最本质的区别是什么?A能自动运行 B存储容量大 C高精度和高速度 D具有逻辑判断功能 计算机C语言中的“C”代表什么意思?这个问题百度上查不到:平时所说的计算机C语言,是Computer的字头缩写吗? 计算机编程高手进C语言已知五个小于35的正整数的乘积是403200,求出所有的组合.谁能给出运算步骤最少的算法! 计算机最主要的工作特点).B.高精度C.存记忆能力 D.存储程序和程序控制是个单选啊 C语言 100以内加减法C语言 制作一个可供小学数学运算程序:100以内加减法乘法,能根据输入题数出题,判断做题是否正确,最后计算分数 用C语言(function)编写一个简易计算机程式,可以完成加减乘除和次方的计算用C语言(function) 编写一个简易计算机程式,可以完全加减乘除和次方的计算.输入一个算式 ,可以印出算式和结果 ,例如 谁知道用C语言怎么编写一个能求出所有的水仙花数的程序? C语言计算高精度阶乘和.已知正整数N(N C语言 比较两数大小(高精度) 2007 矩阵取数把不用高精度的程序发给我好么.今天6点以前.我会尽我所能多给分的pascal语言.c++我看不懂.NOIP2007提高组复赛第三题. 帮忙写一个C语言程序,小学加减法的.通过计算机随机产生10道加减运算题,两个操作数为1~10之间的随机数,运算类型为随机产生的加、减运算中的一种,如果输入答案正确,则显示“正确!”,否 计算机C语言练习题目,. 计算机C语言练习题目, 计算机C语言练习题目, 计算机c语言f(3,