能不能帮我看一下这道题为什么格式错误?

qq_40669215 2020-05-17 03:49:43
题目如下:

我的代码:

#include <cmath>
#include <cstdio>
#include <iostream>
#include <vector>
#include <cstring>
#include <cctype>
using namespace std;
char digit[10][5] = {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};
char wei[3][5] = {"Qian", "Bai", "Shi"};
char da_wei[2][5] = {"Yi", "Wan"};
int main(void)
{
// freopen("data.in", "r", stdin);
string num;
cin >> num;
if(num.at(0) == '-')
{
printf("Fu ");
num = num.substr(1);
}
int group[3];
memset(group, -1, 3 * sizeof(int));
int n = num.size();
if(n == 1)
{
printf("%s", digit[num.at(0) - '0']);
}
else
{
int k = 0;
while(1)
{
if(n < 0) break;
if(n >= 4)
{
group[k++] = 4;
}
else
{
group[k++] = n;
}
n -= 4;
}
for(int i = 2; i >= 0; --i)
{
if(group[i] <= 0) continue;
static int u = 0;
int sig = 0;
int wei_begin = 4 - group[i];
for(int j = 0; j < group[i]; ++j)
{
if(isdigit(num.at(u + j)))
{
int subtract = num.at(u + j) - '0';
if(j == group[i] - 1 && subtract == 0) continue;
if(u + j == 0)
{
printf("%s", digit[subtract]);
sig = 1;
}
else if(subtract != 0 || num.at(u + j + 1) != '0')
{
printf(" %s", digit[subtract]);
sig = 1;
}
if(j != group[i] - 1 && subtract != 0)
{
printf(" %s",wei[wei_begin + j]);
}
}
}
u+=group[i];
if(sig)
printf(" %s", da_wei[2 - i]);
}
}
}

提交的结果:

我用几组数据和别人的AC对比都没有区别啊
...全文
188 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tryagain2006 2020-05-26
  • 打赏
  • 举报
回复
估计是应该在输出的后面增加一个回车符。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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