一、整体思路
读入n后按题目所给格式进行输出
二、关键问题
1.如何按题目所给格式输出
2.如何简化输出个位的过程(十位、百位同理)
三、关键问题对应的解决方法
1.根据n的位数分类进行输出
若n为个位数,则按格式输出个位
若n为十位数,则按格式输出十位与个位
若n为百位数,则按格式输出百位、十位与个位
2.
拿到的个位为char类型,可借助for循环与相应的表达式通过printf("%c",'0'+i-0)完成
关键点在于理解'0'与char,0与int之间的关系与相对关系
四、数据结构
由1001得到的启发,用字符串存储n,以简化对其的处理
代码如下:
#define_CRT_NONSTDC_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
voidprintint(charn[4]);
voidprintgewei(chargewei);
voidprintshiwei(charshiwei);
voidprintbaiwei(charbaiwei);
intmain()
{
charn[4];
scanf("%s",n);
printint(n);
return0;
}
voidprintint(charn[4])
{
inti;
intweishu;
for(i=0;n[i];i++);
weishu=i;
switch(weishu)
{
case1:
{
printgewei(n[0]);
break;
}
case2:
{
printshiwei(n[0]);
printgewei(n[1]);
break;
}
case3:
{
printbaiwei(n[0]);
printshiwei(n[1]);
printgewei(n[2]);
break;
}
}
}
voidprintgewei(chargewei)
{
inti;
for(i=1;i<=(gewei-'0');i++)
{
printf("%c",'0'+i-0);
}
}
voidprintshiwei(charshiwei)
{
inti;
for(i=1;i<=(shiwei-'0');i++)
{
printf("S");
}
}
voidprintbaiwei(charbaiwei)
{
inti;
for(i=1;i<=(baiwei-'0');i++)
{
printf("B");
}
}