總網頁瀏覽量

2015年9月22日 星期二

[C] 整數輸入中文輸出

11不是一十一是十一
20不是二十零而是二十
109不是一百零十九而是一百零九

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

double mod(double, double);

int main(void)
{
  //  char *x;
    int a;
    char x[4];
    printf("Please input a number \n");
    scanf("%d", &a);

    sprintf(x, "%d", a);
    int sum = 0;
    for(int i = 0 ; i < 4 ; i++){
        if(x[i] > 47 && x[i] < 58){
            sum++;
        }
        printf("<%d>  ", x[i]);
       
    }
    printf("  Sum: %d  ", sum);
    if(sum > 4){
        printf("Input the number in 0~999");
        return 0;
    }
    printf("  \n++++++++++++++++\n ");

    for(int i = 0; i<3 ; i++){
        if(i==1 && sum==2 ){
            printf("十");
        }else if(sum==3 && i == 1){
            printf("百");
        }else if(sum==3 && i == 2 && x[1] != 48){
            printf("十");
        }else if(sum == 3 && i == 2 && x[1] == 48 && x[2] !=48){
            printf("零");
        }
        switch(x[i]){
            case '1':
                if(sum != 2 && i != 1)
                 printf("一");
                 break;
            case '2':
                printf("二");
                break;
            case '3':
                 printf("三");
                 break;
            case '4':
                printf("四");
                break;
            case '5':
                 printf("五");
                 break;
            case '6':
                printf("六");
                break;
            case '7':
                 printf("七");
                 break;
            case '8':
                printf("八");
                break;
            case '9':
                 printf("九");
                 break;
        }
    }

    system("pause");
    return 0;
}


沒有留言:

張貼留言