没有用函数做,A了;想专门写一个函数,但是没有输出,我甚至cout了 s[i] 都是能输出且正确的。但是cout s什么都没有,调了一个多小时心态崩了
#include<bits/stdc++.h>
#define M 1000
using namespace std;
string high_plus(string s1,string s2);
int main()
{
string s1,s2;
getline(cin,s1);
getline(cin,s2);
cout<<high_plus(s1,s2);
}
string high_plus(string s1,string s2)
{
short a[M]={0},b[M]={0};
long long sa,sb;
int l=s1.length();
for(int i=l-1;i>=0;i--) a[i+1]=s1[i]-'0';
sa=l;
l=s2.length();
for(int i=l-1;i>=0;i--) b[i+1]=s2[i]-'0';
sb=l;
int sc=max(sa,sb);
int f=0;
short c[M]={0};
for(int i=1;i<=sc;i++){
if(sa==sb) c[i]+=a[i]+b[i];
else{
if(sa>sb){
if(i<=sa-sb) c[i]+=a[i];
else c[i]+=a[i]+b[i-(sa-sb)];
}
if(sa<sb){
if(i<=sb-sa) c[i]+=b[i];
else c[i]+=a[i-(sb-sa)]+b[i];
}
}
}
for(int i=sc;i>=1;i--){
if(c[i]>=10){
c[i]-=10;
c[i-1]++;
if(i==1) f=1;
}
}
string s;
if(f==0){
for(int i=1;i<=sc;i++) s[i-1]=c[i]+'0';
}
else{
for(int i=0;i<=sc;i++){
s[i]=c[i]+'0';
//if(i==sc) s[i+1]='\0';
//cout<<s[i]<<endl;
}
}
//cout<<s;
return s;
}
蹲一个巨佬帮我调代码