C语言编程-7

    xiaoxiao2025-04-09  18

    Translate a number into an english statement.  翻译一个数字成英文句子

    例如:

    1234567890

    输出:

    one billion two hundred thirty four million five hundred sixty seven thousand eight hundred ninety

    提示:使用指针数组

    #include <stdio.h> char *x[] = { "zero","one","two","three","four","five","six","seven","eight","nine" }; char *y[] = { " ","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen" };//加“ ”空格的原因,方便编写程序,因为索引是从0开始的 char *z[] = { " ","ten","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety" }; void inhundred(int num); void inthousand(int num); //函数声明 void inthousand(int num) { if (num / 100 == 0) { inhundred(num); } else { printf("%s hundred", x[num / 100]); if (num % 100 == 0) {}//整百的情况 else { printf(" "); inhundred(num % 100); } } return 0; } void inhundred(int num) { if (num / 10 == 0) //1-9的情况 { printf("%s", x[num]); } else if(num/10==1) //10,11-19的情况 { if (num % 10 == 0) //10的情况,条件可以改成num==10 { printf("%s", z[1]);//或printf("ten"); } else { printf("%s", y[num % 10]);//11-19 } } else //20,21...99;注意整十 { printf("%s", z[num / 10]); if (num % 10 == 0) {} //整十 else { printf(" %s", x[num % 10]); } } return 0; } int main() { long long int num; scanf_s("%lld", &num); //printf("%lld", num); int i = 0; if (num == 0) { printf("%s", x[0]); } else { if (num >= 1000000000) { inthousand(num / 1000000000); printf(" billion "); if (num % 1000000000 == 0) //整十亿 { return 0; } num = num % 1000000000; } if (num >= 1000000) { inthousand(num / 1000000); printf(" million "); if (num % 1000000 == 0)//整百万 { return 0; } num = num % 1000000; } if (num >= 1000) { inthousand(num / 1000); printf(" thousand "); if (num % 1000 == 0)//整千 { return 0; } num = num % 1000; } if (num < 1000) { inthousand(num); return 0; } } return 0; }

     

    最新回复(0)