请编制C程序实现功能:利用字符数组实现两个大整数的加法。 50

要求:在主函数中从键盘上输入两个大整数,调用相应子函数求和,在主函数中输出和值。提示/解1://数右移n位空出高位补'0'n1[]={123456789546}n2[]=... 要求:在主函数中从键盘上输入两个大整数,调用相应子函数求和,在主函数中输出和值。

提示
/解1://数右移n位空出高位补'0'
n1[]={123456789546}
n2[]={75456478}
右移空出高位补’0’:
n1[]={123456789546}
n2[]={000075456478}
resule= (n1[]={123456789546}+ n2[]={000075456478})+向高位的进位值

主函数框架
1. 定义合适的字符数组n1,n2,resule
2. 输入两个表示大整数的字符串n1,n2
3. 获取n1,n2的长度len1,len2
4. If( len1 <= len2 ) //加数长度大于被加数长度
被加数向右移空出高位补’0’(函数RightMoving实现)
Else
加数向右移空出高位补’0’ (函数RightMoving实现)
5. 求n1,n2的和放入result(函数LargerIntegerAdd实现)
6. 输入字符串result的值(即求和的结果)

函数voidRightMoving(char *s,int n)框架
1. 将s中的所有字符向右移动n个字符位置(空出前n个位置)
2. 将s的前n个位置填充字符’0’

函数intLargerIntegerAdd(char *result,char *n1,char *n2)框架
1. 求出result数据的最后位置(比n1或n2大1)
2. 置result的结尾符号’\0’
3. 从result的最低位开始直到次高位为止
计算当前位置的数字
计算当前位置向高位的进位值
4. 置result的最高位数字
5. 判断最高位数字是’0’还是’1’并将判断结果返回(用于确定输出时是否输出表示最高位数字的字符)
展开
 我来答
匿名用户
2014-06-10
展开全部
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

void RightMoving(char *s,int n)
{
char *p=s,*q;
while(*p++!='\0');
for(q=p;q!=s;q--)
*(q-1+n) = *(q-1);
for(int i=0;i<n;++i)s[i] = '0';
}
int LargerIntegerAdd(char *result,char *n1,char *n2)
{
int i,t=0,num;
num = strlen(n1)>strlen(n2)?strlen(n1):strlen(n2);

result[num]='\0';
for(i=num-1;i>-1;i--)
{
result[i] = (n1[i] + n2[i] + t - '0');
t=0;
if(result[i]>'9')
{
t++;
result[i] -= 10;
}
}
return t;
}
int main()
{
int i;
char n1[200],n2[200],result[200];
gets(n1);
gets(n2);

printf("%s+%s=",n1,n2);
if(strlen(n1)>strlen(n2))
RightMoving(n2,strlen(n1)-strlen(n2));
if(strlen(n1)<strlen(n2))
RightMoving(n1,strlen(n2)-strlen(n1));
i = LargerIntegerAdd(result,n1,n2);
if(i>0)
printf("%d",i);
puts(result);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dglsfa1
2013-06-07
知道答主
回答量:28
采纳率:0%
帮助的人:4万
展开全部
这 。。~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
52155895
2013-06-05 · TA获得超过342个赞
知道小有建树答主
回答量:338
采纳率:0%
帮助的人:165万
展开全部
这个,我也不会啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风易29
2013-06-05 · TA获得超过149个赞
知道答主
回答量:51
采纳率:0%
帮助的人:23.1万
展开全部
你这2B
.....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式