题目及要求如下:
代码如下:
#includeint main(){ int n;//输入正整数n scanf("%d",&n); int i,a,b; a=n%10;//取得输入正整数的个位 n=n/10; b=n%10;//取得输入正整数的十位 n=n/10;//取得输入正整数的百位 for(i=0;i 1.由于题目说输出任一个不超过 3 位的正整数,故可以利用%分别得到该数的个位,十位,百位,再利用for循环输出B,S及个位即可。
下面再放个同学的代码,比我写得好。
#include#include #include int main(){ int num,count=1; //count用来判断个十百位 char str[50]=""; //不初始化后面用sprintf会有小问题,不信可以试试 scanf("%d",&num); while(num>0){ int temp=num%10; for(int j=temp;j>=1;j--){ switch(count) { case 1:sprintf(str,"%s%d",str,j);break; //个位 case 2:strcat(str,"S");break; //十位 case 3:strcat(str,"B");break; //百位 } } num/=10; //去下一位 count++; //count用来判断个十百位,所以要变 } for(int i=strlen(str)-1;i>=0;i--){ //倒序输出 printf("%c",str[i]); } return 0; }



