有进位的问题,比较讨厌
请帮忙用c++实现一下
谢了
输入两个正整数,位数不超过100位,计算它们的和并输出
答案:2 悬赏:10 手机版
解决时间 2021-03-03 01:10
- 提问者网友:ミ烙印ゝ
- 2021-03-02 09:21
最佳答案
- 五星知识达人网友:酒者煙囻
- 2021-03-02 10:34
告诉你 ,这个问题我可以解决,不过你居然一分都不悬赏,太吝啬了,我不想给你写!!!
全部回答
- 1楼网友:低音帝王
- 2021-03-02 11:16
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main()
{
int i,na,nb;
char a[101],b[101];
char c[102];
char temp[102];
int saveinvstr(char *dst,char *src,int n);
int printinvstr(char *str,int n);
int printstr(char *str,int n);
int stradd(char *dst,char *src1,char *src2);
printf("a=");
scanf("%s",temp);
saveinvstr(a,temp,strlen(temp));
printf("b=");
scanf("%s",temp);
saveinvstr(b,temp,strlen(temp));
stradd(c,a,b);
printinvstr(a,strlen(a));
printf(" + ");
printinvstr(b,strlen(b));
printf(" = ");
printinvstr(c,strlen(c));
getch();
return 0;
}
int saveinvstr(char *dst,char *src,int n)
{
int i;
for (i=0;i<n;i++)
dst[n-1-i]=src[i];
dst[n]='\0';
return 1;
}
int printinvstr(char *str,int n)
{
int i;
for (i=n-1;i>=0;i--)
printf("%c",str[i]);
return 1;
}
int printstr(char *str,int n)
{
int i;
for (i=0;i<n;i++)
printf("%c",str[i]);
return 1;
}
int stradd(char *dst,char *src1,char *src2)
{
int i;
int flag=0;
char temp;
while(*src1 && *src2)
{
temp=*src1 + *src2 - '0' + flag;
if (temp>'9')
{
temp-=10;
flag=1;
}
else
flag=0;
*dst=temp;
dst++;
src1++;
src2++;
}
if (*src1)
while(*src1)
{
temp=*src1++ +flag;
if (temp>'9')
{
temp-=10;
flag=1;
}
else
flag=0;
*dst++ = temp;
}
else if (*src2)
while(*src2)
{
temp=*src2++ +flag;
if (temp>'9')
{
temp-=10;
flag=1;
}
else
flag=0;
*dst++ = temp;
}
if (flag)
*dst++='1';
*dst='\0';
return 1;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯