PAT 1006 换个格式输出 C语言
让我们用字母B来表示“百”、字母S表示“十”,用“12...n”来表示个位数字n(<10),换个格式来输出任一个不超过3位的正整数。例如234应该被输出为BBSSS1234,因为它有2个“百”、3个“十”、以及个位的4。
输入格式:每个测试输入包含1个测试用例,给出正整数n(<1000)。
输出格式:每个测试用例的输出占一行,用规定的格式输出n。
输入样例1:
234
输出样例1:
BBSSS1234
输入样例2:
23
输出样例2:
SS123
1 #include<stdio.h> 2 #include<string.h> 3 #define MAXN 9 4 int c1[MAXN]; 5 char c2[MAXN]; 6 char c3[MAXN]; 7 int main() 8 { 9 int i,j,tmp,j1,j2; 10 char shi,bai; 11 scanf("%d",&i); 12 13 j = i % 10; 14 tmp = 0; 15 shi = 'S'; 16 bai = 'B'; 17 18 memset(c1,0,sizeof(c1)); 19 memset(c2,0,sizeof(c2)); 20 memset(c3,0,sizeof(c3)); 21 22 //个位数 23 for(;tmp< j; tmp++){ 24 c1[tmp] = tmp+1; 25 } 26 //十位数 27 if((j1 = i /10) > 0){ 28 j1 = j1 % 10; 29 for(tmp = 0;tmp < j1; tmp++){ 30 c2[tmp] ='S'; 31 } 32 } 33 //百位数 34 if((j2 = i / 100) > 0){ 35 for(tmp = 0;tmp < j2; tmp++){ 36 c3[tmp] = 'B'; 37 } 38 } 39 40 //输出 41 if(j2 > 0){ 42 for(tmp = 0; tmp < j2; tmp++){ 43 printf("%c",c3[tmp]); 44 } 45 } 46 if(j1 > 0){ 47 for(tmp = 0; tmp < j1; tmp++){ 48 printf("%c",c2[tmp]); 49 } 50 } 51 for(tmp = 0; tmp < 9; tmp++){ 52 if(c1[tmp] == 0) break; 53 printf("%i",c1[tmp]); 54 } 55 56 return 0; 57 }