C语言问题求指教

高精度大整数加减运算,通过数组的形式进行大整数的加减法计算,包括大整数输入、输出、数组化大整数的加法和减法实现
最终的程序运行要求:
输入三行、
第一行为大整数A,
第二行为'+'或者'-'字符(单字符),
第三行为大整数B。
结果输出A+B或者A-B的值(根据第二行的加减字符决定操作)

第1个回答  2020-05-10
思路:用字符串存放数字,长度不受数值类型大小限制了。
一、定义字符串数组,第一个元素存放0或1表示正负,后面存放数字字符'0'~'9'。
二、加减从两个字符串最后一位开始取。将数字字符转数值再进行运算(字符-'0'),同时用一个变量记录进位值,除10求余再加'0'就是当前结果数值位的值。
反之就是借位,进位和借位变量初值都是0,每次循环运算是减借位值并加进位值。
比如:两个字符串数字:123,279。先分别取最后一位,('3'-'0')+('9'-'0')=12。
那么,12%10=2;12/10=1;这个2加上'0'(进位借位初值都是0)转成字符就保存在结果字符串最后一个地址。1保存进位变量参与下个循环加。本回答被网友采纳

求指教如何用C语言表达出来 。。
int main(){ int k,sum1=0,sum2;float sum3,sum;printf("请输入整数K:\\n");scanf("%d",&k);for(int i=k-1;k<=100;k++){ sum1=sum1+k;} for(i=k-1;i<=50;i++){ sum2=sum2+pow(i,2);} for(i=k-1;i<=10;i++){ sum3=sum3+1.0\/(float)k;} printf("sum...

C语言,求指教!输入整数m,n。输出m行n列的 * 图案。请问应该怎么写程序...
int main(int argc, char *argv[]){ int m,n,j,k;scanf("%d%d",&m,&n);\/\/接收m、n,两数字中间用空格或回车 for(j=0;j<m;++j)\/\/设计行数 { for(k=0;k<n;++k)\/\/设计列数 printf("*");printf("\\n");\/\/换行 } return 0;} ...

C语言编程求指教 输入十进制数,转化为十六进制数,用到数组,取余,求模...
include<stdio.h>const int index = 16;int main(){ int n,num[999]; while(scanf("%d",&n) != EOF) { int k = 0, count = 0; if(n == 0) puts("0"); else { if(n < 0) { printf("-"); n = -n; } while(n != 0) ...

初学c语言 如图求指教 我的本意是从键盘输入任意小写字母 结果输出其字 ...
1、main函数没有指定类型;2、读取a以后,又给a赋值,那读取就没有意义了。程序:include <stdio.h>void main(){char a=getchar();printf("%c %d",a-32,a-32);}

C语言求余代码,表示不知道错哪了,求指教。
,result);return 0;}上面是程序,求余数,只能是整数,不能是浮点数 也可以这样写,看程序,对照你的程序对比一下那不一样:include<stdio.h>int main(){int num1,num2,result;printf("请输入两个数:");scanf("%d%d",&num1,&num2);printf("余数是%d\\n",num1%num2);return 0;} ...

c语言问题求指教啊。问题在代码中标记了。
head是指针,用于存放数据a的地址值,p也是一个指针,初始化为a的地址,使用指针访问结构里的数据时,使用 -> 来操作,功能与p.num,p.score相同。这句是将一个student结构里的num和score显示在屏幕上。运行时通过 p=p->next;依次指向下一个数据的地址,输出所有的数据。

在学习C语言中做实验来了个指向函数的指针,连语法都不知,求指教
比如(1)这是基本类型指针的语法 include <stdio.h> int main(void){ int i = 5;int * p;p = &i; \/\/p保存了i的地址,所以p指向i,所以*p = i 。p = i; \/\/ *p指的是以p的内容(i的地址:&i)为地址的变量 printf("%d\\n", *p); \/\/输出结果,*p = 5;return 0;} (2...

C语言,数组输入遇到问题求大神指教:哪里错了,如何改正,为什么会出现...
scanf的格式加'\\n',含义特殊,不是输入一个回车,而是输入完一个数字后,必须等待一个非空格、制表符、回车的输入,程序才会继续。所以你那样写,第一次循环输入2回车,不会进入下一次循环,而是等待再次输入,然后你输入3的时候2被存储在元素1中,进入下一个循环,已经有3了还要等待输入,于是你输入...

C语言编程问题,求大神指教 编写程序,输入两个正整数m和n,求∑(i*i+...
楼上两位的代码可能有点小问题 s += m*m+1\/m;改成 s += m*m+1.0\/m;

c语言 鞍点问题,求大神指教我哪里写错了~~~
你的程序问题在于 i 这个变量嵌套的for循环覆盖了上层的for循环中的 i值,把嵌套for循环改为变量k就好了(添加一个变量k)for(k=0;k<4;k++) \/*每一行的最大点和该点所在列的数比较,看它是否是鞍点。*\/ { if(array[k][column]>max) printf("\\n");else printf("%d\\n",max);} ...

相似回答