您的位置:首页 > 其它

PAT-B 1006. 换个格式输出整数

2016-04-27 18:50 573 查看

题目内容:

让我们用字母B来表示“百”、字母S表示“十”,用“12…n”来表示个位数字n(<10),换个格式来输出任一个不超过3位的正整数。例如234应该被输出为BBSSS1234,因为它有2个“百”、3个“十”、以及个位的4。

输入格式:每个测试输入包含1个测试用例,给出正整数n(<1000)。

输出格式:每个测试用例的输出占一行,用规定的格式输出n。

输入样例1:

234


输出样例1:

BBSSS1234


输入样例2:

23


输出样例2:

SS123


思路分析:

直接 scanf 读取输入,按照 3字符宽度(%03d) 打印到当做暂存的字符数组 chr 中,从左至右,按顺序处理。

输出转换用了 (%.*s) 占位符格式, 星号表示一个 int 类型,作为 sprintf 的参数提供,表示输出的字符串长度。

代码:

#include <stdio.h>

int main()
{
char chr[4], out[3][11] = {"BBBBBBBBB", "SSSSSSSSS", "123456789"};
int n;

scanf("%d", &n);
sprintf(chr, "%03d", n);
for (int i = 0; i < 3; i++)
printf("%.*s", chr[i]-48, out[i]);

return 0;
}


点这里进入试题网页
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: