1002 이 수 (20 분) 를 써 서 정수 n 을 읽 고 여러분 의 숫자의 합 을 계산 하 며 중국어 병 음 으로 합 친 모든 숫자 를 씁 니 다.

1002 이 숫자 를 써 라. (20 분)
정수 읽 기 n. 그 숫자 들 의 합 을 계산 하고 중국어 병 음 으로 모든 숫자 를 작성 합 니 다.
입력 형식:
각 테스트 입력 은 테스트 용례 1 개 를 포함 하여 자연 수 를 제시 합 니 다. n 의 값.여기 서 보증 합 니 다. n ... 보다 작다 10​100​​。
출력 형식:
한 줄 에 출력 n 숫자 를 합 친 모든 자리, 병 음 숫자 사이 에는 1 개의 빈 칸 이 있 지만 한 줄 의 마지막 병 음 숫자 뒤에 빈 칸 이 없습니다.
입력 예시:
1234567890987654321123456789

출력 예시:
yi san wu

방법 1
#include #define N 100 #define M 5 int main() { char numChar[10][5]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"}; char array[N]; int sum=0,i=0,j; int index[M]; for(i=0;i index[i]=-1; scanf("%s",array); i=0; while(array[i]!='\0') { sum+=array[i]-'0'; i++; } j=0; while(sum>0){ index[j]=sum%10; sum=sum/10; j++; } for(i=M-1;i>=0;i--) { if(index[i]!=-1) { if(i==0) printf("%s",numChar[index[i]]); else printf("%s ",numChar[index[i]]); } } return 0; }
방법 2 \ # include \ # include  int main(void) {     //파 트 1: 입력 숫자 한 자리 당 합 을 계산 합 니 다.    int sum = 0;     char ch;     ch = getchar();     while (ch != '')     {         switch (ch)         {         case '1':             sum += 1;             break;         case '2':             sum += 2;             break;         case '3':             sum += 3;             break;         case '4':             sum += 4;             break;         case '5':             sum += 5;             break;         case '6':             sum += 6;             break;         case '7':             sum += 7;             break;         case '8':             sum += 8;             break;         case '9':             sum += 9;             break;         default:             sum += 0;             break;         }         ch = getchar();     }             //파 트 2: 난점: char 와 포인터 사용      //sum 은 각각 병 음 으로 번역 되 어 포인터 배열 에 저장 되 지만 이것 은 역순 입 니 다!    char *result[100];     int digit_count = 0;     while(sum != 0)     {         int digit = sum % 10;         switch (digit)         {         case 0:             result[digit_count] = "ling";             break;         case 1:             result[digit_count] = "yi";             break;         case 2:             result[digit_count] = "er";             break;         case 3:             result[digit_count] = "san";             break;         case 4:             result[digit_count] = "si";             break;         case 5:             result[digit_count] = "wu";             break;         case 6:             result[digit_count] = "liu";             break;         case 7:             result[digit_count] = "qi";             break;         case 8:             result[digit_count] = "ba";             break;         case 9:             result[digit_count] = "jiu";             break;         default:             break;         }         sum = sum / 10;         digit_count++;     }           //역순 출력 포인터 배열 의 내용 은 빈 칸 을 추가 하고 마지막 병 음 뒤에 빈 칸 을 추가 하지 않도록 주의 하 십시오.    char result_string[100] = "";     for (int i = digit_count - 1; i >= 0; i--)     {         if(i==0)             strcat(result_string, result[0]);                      else         {             char p[10];             strcpy(p, result[i]);             strcat(p, " ");             strcat(result_string, p);         }     }       printf("%s", result_string);       return 0;} - - - - 저작권 성명: 본 고 는 CSDN 블 로 거들 인 '오 군 학생 정말 멋 져 요'의 오리지널 글 은 CC 4.0 BY - SA 저작권 협의 에 따라 원문 출처 링크 와 본 성명 을 첨부 하 시기 바 랍 니 다.https://blog.csdn.net/qq_36627158/article/details/104182932 - - - - - 저작권 성명: 본 고 는 CSDN 블 로 거 'hide on cloud' 입 니 다.의 오리지널 글 은 CC 4.0 BY - SA 저작권 협의 에 따라 원문 출처 링크 와 본 성명 을 첨부 하 시기 바 랍 니 다.https://blog.csdn.net/small_feiyu/article/details/65935964

좋은 웹페이지 즐겨찾기