杭电ACM-1002,请问为什么是“Presentation Error”

windsting 2010-05-31 09:54:31
题目点下面链接,Output描述我也仔细看了好几遍了
http://acm.hdu.edu.cn/showproblem.php?pid=1002
我的代码和输出(输出没有代码中的注释):
#include <iostream>
#include <cstdio>
#include <cstdlib>

using namespace std;

const size_t BufferSize = 1024;
const size_t BufferLen = BufferSize-1;

char szFirst[BufferSize]={0};
char szSecond[BufferSize]={0};
char szResult[BufferSize]={0};
char* pResult=szResult+BufferLen;

const char* Sum(const string& sFirst,const string& sSecond)
{
int iCarry=0;
int iSum;
int idxFirst=sFirst.size()-1;
int idxSecond=sSecond.size()-1;
char* pResult=szResult+BufferLen;
int iFirst;
int iSecond;

for(;idxFirst>=0||idxSecond>=0;)
{
iFirst = idxFirst>=0?sFirst[idxFirst]-'0':0;
iSecond = idxSecond>=0?sSecond[idxSecond]-'0':0;
iSum = iFirst+iSecond+iCarry;
iCarry = iSum/10;
*pResult = char(iSum%10) + '0';

--pResult;
--idxFirst;
--idxSecond;
}

if(iCarry)
{
*pResult = iCarry+'0';
}
else
{
++pResult;
}
return pResult;
}

int main()
{
int a;
cin >> a;
for(int i=1;i<=a;++i)
{
cin >> szFirst;
cin >> szSecond;
printf("Case %d: \n",i);
printf("%s + %s = %s \n\n",szFirst,szSecond,Sum(szFirst,szSecond));
}
}
//Case 1:
//1 + 2 = 3
//
//Case 2:
//112233445566778899 + 998877665544332211 = 1111111111111111110
//

文字描述中的 Case用的是‘.’,示例输出用的是‘:’,
我都试过了,用‘.’是“Wrong Answer”,‘:’就是“PE”了。
...全文
275 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
fanster28_ 2010-05-31
  • 打赏
  • 举报
回复
就是单独练习格式的,
大多数不会有这样不和情理的要求。
windsting 2010-05-31
  • 打赏
  • 举报
回复
谢谢,呵呵,真没想到,这东西对格式的要求这么死板。
fanster28_ 2010-05-31
  • 打赏
  • 举报
回复
      
if(i != T-1)
printf("\n");

最后个例子输出时不能输出换行了
fanster28_ 2010-05-31
  • 打赏
  • 举报
回复
#include<stdio.h>
#include<string.h>

int main()
{
int T = 0;
int i,j,k,t,bf,f;
int x,y;
char a[1001], b[1001];
char c[1001];
scanf("%d", &T);
for(i = 0; i < T; ++i)
{
printf("Case %d:\n", i + 1);
f = 0;
scanf("%s %s", a, b);
printf("%s + %s = ", a, b);
j = strlen(a);
k = strlen(b);
j --;
k --;
bf = 0;
while(j >= 0 || k >= 0)
{
if(j < 0)
x = 0;
else
x = a[j--] - '0';
if(k < 0)
y = 0;
else
y = b[k--] - '0';

t = x + y + bf;
bf = 0;
if(t >= 10)
{
c[f++] = t - 10;
bf = 1;
}
else
c[f++] = t;
}
if(bf != 0)
c[f++] = 1;
for(f = f-1; f >= 0; --f)
printf("%d", c[f]);
printf("\n");
if(i != T-1)
printf("\n");
}
return 0;
}

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧