发布网友 发布时间:1天前
共1个回答
热心网友 时间:1天前
说实在的,你的代码有那么点繁琐,就算是搞清楚了,那也是不可取的,我把我的代码给你吧!
代码1:
#include<stdio.h>
#include<string.h>
int main()
{
int a[1002]={0},b[1002]={0},c[1002]={0};
int i,n,k,alen,blen,r=0;
char str1[1002],str2[1002];
scanf("%d",&n);
while(n--)
{
if(r>0) printf("\n");
scanf("%s",str1); alen=strlen(str1);
scanf("%s",str2); blen=strlen(str2);
k=alen>blen?alen:blen;
for(i=0;i<alen;i++) a[i]=str1[alen-i-1]-'0';
for(i=0;i<blen;i++) b[i]=str2[blen-i-1]-'0';
for(i=0;i<k;i++)
{
c[i]=a[i]+b[i]+c[i];
c[i+1]=c[i]/10;
c[i]=c[i]%10;
if(c[k]) k++;
}
r++;
printf("Case %d:\n",r);
printf("%s + %s = ",str1,str2);
for(i=k-1;i>=0;i--) printf("%d",c[i]);
printf("\n");
for(i=0;i<alen;i++) a[i]=0;
for(i=0;i<blen;i++) b[i]=0;
for(i=0;i<k;i++) c[i]=0;
}
return 0;
}
代码2:
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
int m,n,o,p,i,j,k,l;
string a,b,c,d;
cin>>n;
for(i=0;i<n;i++)
{
a=b=c=d="";
cin>>a>>b;
k=0;
reverse(a.begin(),a.end());
reverse(b.begin(),b.end());
for(j=0;j<((a.size()>b.size())?a.size():b.size());j++)
{
m=0;o=0;
if(j<a.size()) m=a[j]-'0';
if(j<b.size()) o=b[j]-'0';
p=m+o+k;
if(p>=10)
{
p=p-10;
k=1;
}
else k=0;
d=p+'0';
c=c+d;
}
if(k==1)
c=c+'1';
reverse(a.begin(),a.end());
reverse(b.begin(),b.end());
reverse(c.begin(),c.end());
cout<<"Case "<<i+1<<":"<<endl;
cout<<a<<" + "<<b<<" = "<<c<<endl;
if(i!=n-1) cout<<endl;
}
return 0;
}