实验任务
以字符串形式输入两个数字,模拟加法求这两个数字的和。
要求:
1. 不得修改已有程序框架;
2. 不得在 main 函数中添加、删除、修改任何代码;
3. 完成 f 函数,允许在 f 前添加其他自定义函数、变量、头文件,结果存在
s3 中。
#include<stdio.h>
#include<string.h>
char s1[110],s2[110],s3[110];
void f(char s1[],char s2[],char s3[]){
}
int main(){
scanf("%s",s1);
scanf("%s",s2);
f(s1,s2,s3);
printf("%s\n",s3);
return 0;
}
★数据输入
输入两行包括两个正整数 N,M(M,N 长度不大于 100)。
★数据输出
输出一行,N,M 的和。
#include<stdio.h>
#include<string.h>
#include<iostream>using namespace std;
char s1[110],s2[110],s3[110];
void f(char s1[],char s2[],char s3[])
{
int a,b,i,j;
a=strlen(s1);
b=strlen(s2);
if(a<b)
{
swap(a,b);
swap(s1,s2);
}
for(i=a-1,j=b-1;j>=0;i--,j--)
s3[i]=s1[i]+s2[j]-96;
for(i=0;i<a-b;i++)
s3[i]=s1[i]-48;
for(i=a-1;i>0;i--)
if(s3[i]>=10) s3[i]-=10,s3[i-1]+=1;if(s3[0]>=10)
{
s3[0]-=10;
for(i=a;i>0;i--)
s3[i]=s3[i-1]+48;
s3[0]='1';
}
else
for(i=0;i<a;i++)
s3[i]+=48;
}
int main(){
scanf("%s",s1);
scanf("%s",s2);
f(s1,s2,s3);
printf("%s\n",s3);
return 0;
}