回复 12楼 三个人
#include <stdio.h>
void Switch(int idx, int a[]);
int main(int argc, char const *argv[])
{
int n = 0;
int cnt = 0;
int a[10];
for (int i = 0; i < 10; i++) {
a[i] = 0;
}
scanf("%d", &n);
int temp = n;
while (temp) {
a[cnt] = temp % 10;
temp = temp / 10;
cnt++;
}
for (int i = cnt-1; i >= 0; i--) {
Switch(i, a);
}
if (n == 0) {
printf("a");
}
printf("\n");
return 0;
}
void Switch(int idx, int a[])
{
int flag = 0;
int IDX = 0;
int flag_not_0 = 0;
switch (a[idx]) {
case 0:
if (idx <= 3) {
for (int i = idx; i <= 8; i++) {
if (a[i]) {
IDX = i;
flag = 1;
break;
}
}
for (int i = idx+1; i <= IDX; i++) {
if (a[i] == 0) {
flag = 0;
break;
}
}
for (int i = idx; i >= 0; i--) {
if (a[i]) {
flag_not_0 = 1;
break;
}
}
if (flag && flag_not_0) {
printf("a");
}
}else{
for (int i = idx; i <= 8; i++) {
if (a[i]) {
IDX = i;
flag = 1;
break;
}
}
for (int i = idx+1; i <= IDX; i++) {
if (a[i] == 0) {
flag = 0;
break;
}
}
for (int i = idx; i >= 4; i--) {
if (a[i]) {
flag_not_0 = 1;
break;
}
}
if (flag && flag_not_0) {
printf("a");
}
}
break;
case 1:
if (idx == 1) {
if (a[2] || a[3] ||a[4] ||a[5] || a[6]
||a[7] || a[8] )
{
printf("b");
}else{
}
}else if(idx == 5){
if ( a[6] ||a[7] || a[8])
{
printf("b");
}else{
}
}else{
printf("b");
}
break;
case 2:
printf("c");
break;
case 3:
printf("d");
break;
case 4:
printf("e");
break;
case 5:
printf("f");
break;
case 6:
printf("g");
break;
case 7:
printf("h");
break;
case 8:
printf("i");
break;
case 9:
printf("j");
break;
}
switch (idx) {
case 1:
if (a[idx]) {
printf("S");
}
break;
case 2:
if (a[idx]) {
printf("B");
}
break;
case 3:
if (a[idx]) {
printf("Q");
}
break;
case 4:
if (a[4] || a[5] || a[6] || a[7]) {
printf("W");
if (a[4] == 0 || (a[4]==0 && a[5]==0 )
||( a[4]==0 &&a[5] ==0 && a[6] == 0)) {
printf("a");
}
}
break;
case 5:
if (a[idx]) {
printf("S");
}
break;
case 6:
if (a[idx]) {
printf("B");
}
break;
case 7:
if (a[idx]) {
printf("Q");
}
break;
case 8:
printf("Y");
break;
default:
break;
}
}