Ennn我也来问一下PAT乙级 1002题,测试点5(附加:送分)

wowpH 2019-10-21 04:16:17
看到那位老哥在写,我也想去看看,我之前用Java已经AC了。但是今天用C语言写的,测试点5死活过不去。。。脾气来了,非要知道测试点5是个什么鬼东西。只需要告诉我测试点5是啥就行。

PS:就当做送分也行。。。反正也没用。。。

题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805324509200384


这是我的代码:测试点5过不去。
#include <stdio.h>

char str[10][6] = { "ling", "yi", "er", "san", "si", "wu", "liu ", "qi", "ba", "jiu" };

void output(int num);

int main(void) {
int sum = 0;
char ch = getchar();
while (ch != '\n') {
sum += ch - 48;
ch = getchar();
}
output(sum);
return 0;
}

void output(int num) {
if (num < 10) {
printf("%s", str[num]);
} else {
output(num / 10);
printf(" %s", str[num % 10]);
}
}


这是网上搜的代码:AC
#include <stdio.h>

int main()
{
int sum = 0;
char c, *pinyins[] = {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};

while((c = getchar()) != '\n')
sum += c - '0';

if(sum / 100)
printf("%s ", pinyins[sum / 100]);
if(sum / 10)
printf("%s ", pinyins[sum / 10 % 10]);
printf("%s", pinyins[sum % 10]);

return 0;
}
...全文
181 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wowpH 2019-10-25
  • 打赏
  • 举报
回复
引用 6 楼 SuperDay 的回复:
你可以搞定的啊!
我的天,我真是沙雕了。5楼第一张图片是因为它是八进制的12转成10进制就是10。。。。
wowpH 2019-10-22
  • 打赏
  • 举报
回复
引用 6 楼 SuperDay 的回复:
你可以搞定的啊!
没有,虽然发现了奇怪的地方,但是这个不太可能出现。。。还是无法解决我的疑惑。
铖邑 2019-10-21
  • 打赏
  • 举报
回复
你可以搞定的啊!
wowpH 2019-10-21
  • 打赏
  • 举报
回复
引用 3 楼 SuperDay 的回复:
最后需要换行吗?还有,如果前面出现0怎么处理呢?
不会换行,下面AC的代码也没换行。代码我没动。 惊呆我了。前面有0的话,值居然会改变。 一个0的话没事。 但是按照我的写法,前面根本不可能出现0啊。
铖邑 2019-10-21
  • 打赏
  • 举报
回复
最后需要换行吗?还有,如果前面出现0怎么处理呢?
wowpH 2019-10-21
  • 打赏
  • 举报
回复
补充:这是我的提交结果。
没饭吃! 2019-10-21
  • 打赏
  • 举报
回复
一个循环就搞定了吧

69,380

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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