cin后面是不能跟endl的;cout才可以。
这个是没调整格式的代码
#include
#include<stdio.h>
#include<string.h>
#include<math.h>
using namespace std;
int main()
{
int s=1;
int n;
// cin>>n;
scanf("%d",&n);
while ( s<=n)
// for(int i=0;i<=n;i++)
{
// cout<<endl;
char a1[1000]={0},a2[1000]={0};
int b1[1001]={0},b2[1001]={0};
scanf("%s %s",a1,a2);//之前在这里放了一个\n然后就出BUG了。
int k1=strlen(a1);
int k2=strlen(a2);
for(int i=k1-1;i>=0;i--)
{
b1[k1-1-i]=a1[i]-'0';
}
for(int i=k2-1;i>=0;i--)
{
b2[k2-1-i]=a2[i]-'0';
}
int k3=k1>k2?k1:k2;
for( int i=0;i<k3;i++)
{
b1[i]+=b2[i];
if(b1[i]>10)
{ b1[i]-=10;
b1[i+1]+=1;
}
}
if(b1[k3]==0)
{
for(int i=k3-1;i>=0;i--)
printf("%d",b1[i]);
}
else
{
for(int i=k3;i>=0;i--)
printf("%d",b1[i]);
}
s++;}
return 0;
}
考虑格式后,,,发现坑很多很多。。。
#include
#include<stdio.h>
#include<string.h>
#include<math.h>
using namespace std;
int main()
{
int s=1;
int n;
// cin>>n;
scanf("%d",&n);
while ( s<=n)
// for(int i=0;i<=n;i++)
{
// cout<<endl;
char a1[1000]={0},a2[1000]={0};
int b1[1001]={0},b2[1001]={0};
scanf("%s %s",a1,a2);//之前在这里放了一个\n然后就出BUG了。
int k1=strlen(a1);
int k2=strlen(a2);
for(int i=k1-1;i>=0;i--)
{
b1[k1-1-i]=a1[i]-'0';
}
for(int i=k2-1;i>=0;i--)
{
b2[k2-1-i]=a2[i]-'0';
}
int k3=k1>k2?k1:k2;
for( int i=0;i<k3;i++)
{
b1[i]+=b2[i];
if(b1[i]>=10)//之前这里少了一个=
{ b1[i]-=10;
b1[i+1]+=1;
}
}
cout<<"Case "<<s<<":"<<endl;//大小写问题 还有cout用双引号,单引号还不知道是什么
cout<<a1 <<" + "<<a2 <<" = ";//空格在+中间做,学到了。。单纯地在a1后面做空格没用
if(b1[k3]==0)
{
for(int i=k3-1;i>=0;i--)
printf("%d",b1[i]);
}
else
{
for(int i=k3;i>=0;i--)
printf("%d",b1[i]);
}
cout<<endl;//<<endl;
s++;
if(s<=n)
cout<<endl;//看到这个PE的时候我就猜到大概是最后一行的空格问题了,看了别人的题解借鉴了这个方法
}
return 0;
}