永发信息网

A+B Problem Time Limit:1Sec Input File:aplusb.in Calculate a+b

答案:2  悬赏:0  手机版
解决时间 2021-03-30 09:28
  • 提问者网友:爱了却不能说
  • 2021-03-29 12:38
A+B Problem Time Limit:1Sec Input File:aplusb.in Calculate a+b
最佳答案
  • 五星知识达人网友:等灯
  • 2021-03-29 13:45
//DEV CPP编译通过~
#include
#include
#include

#define MAX_SIZE 100 // 最大位数

char n1[MAX_SIZE] = ""; // 第一个整数
char n2[MAX_SIZE] = ""; // 第二个整数
char n3[MAX_SIZE+1] = ""; // 两个整数之和

void do_sum();
int main(void)
{
//读取两个整数
printf("第一个整数为:");
scanf("%s", n1);
printf("第二个整数为:");
scanf("%s", n2);
do_sum();//求和
FILE *fp;
if((fp=fopen("aplusb.in","w"))==NULL)//保存结果
{
fprintf(stderr,"不能打开文件.\n");
exit(1);
}
int size=strlen(n3);
for(int n=0;n fprintf(fp,"%d",n3[n]);
fclose(fp);

return 0;

}

void do_sum()
{
int Len1;
int Len2;
int Carry = 0; // 进位
int n = 0;

for(Len1 = strlen(n1)-1, Len2 = strlen(n2)-1; (Len1 >= 0) && (Len2 >= 0); Len1--, Len2--)
{
n3[n] = n1[Len1] - '0' + n2[Len2] - '0' + Carry;
Carry = n3[n] / 10;
n3[n] %= 10;
n++;
}
for(; Len1 >= 0; Len1--)
{
n3[n] = n1[Len1] - '0' + Carry;
Carry = n3[n] / 10;
n3[n] %= 10;
n++;
}
for(;Len2 >= 0; Len2--)
{
n3[n] = n2[Len2] - '0' + Carry;
Carry = n3[n] / 10;
n3[n] %= 10;
n++;
}
printf("两数之和为");
for(n--; n >= 0; n--)
{
printf("%d", n3[n]);
}//输出和
printf("\n");
}追问能否用类机制,进行对象化的修改?
全部回答
  • 1楼网友:毛毛
  • 2021-03-29 15:16
抱歉这不是我擅长的领域。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯