数的读法c语言程序,C语言入门 -- 数字的两种读法(2021/1/7)

本文介绍了一个简单的C语言程序,该程序能够将1至999之间的整数转换为其对应的英文单词表示形式,并提供了两种不同的转换方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*

Name:programme4.c

Author:祁麟

Copyright:BJTU | school of software

Date:2020/10/27

Description:write a function convertIntToRealWords(int value), which

converts the passed value to words as we really say them.

*/

#include

int main(void){

int number;

printf("退出请输入0");

while(1){

printf("\n请输入一个大于0小于1000的数字: ");

scanf("%d",&number);

if (number==0) break;

printf("\n这个数字读作:");

convertIntToWords(number);

printf("\n其实也可以这样读:");

convertIntToRealWords(number);

printf("\n厉害吧!\n");

}

return 0;

}

//将1~999的数字分别转换为单词

int convertIntToWords(int value){

int hundreds=0,tens=0,units=0;

hundreds=value/100;

tens=value%100/10;

units=value-100*hundreds-tens*10;

if (hundreds!=0){

switch (hundreds){

case 1:printf("one ");break;

case 2:printf("two ");break;

case 3:printf("three ");break;

case 4:printf("four ");break;

case 5:printf("five ");break;

case 6:printf("six ");break;

case 7:printf("seven ");break;

case 8:printf("eight ");break;

case 9:printf("nine ");break;

}

switch (tens){

case 0:printf("zero ");break;

case 1:printf("one ");break;

case 2:printf("two ");break;

case 3:printf("three ");break;

case 4:printf("four ");break;

case 5:printf("five ");break;

case 6:printf("six ");break;

case 7:printf("seven ");break;

case 8:printf("eight ");break;

case 9:printf("nine ");break;

}

switch (units){

case 0:printf("zero");break;

case 1:printf("one");break;

case 2:printf("two");break;

case 3:printf("three");break;

case 4:printf("four");break;

case 5:printf("five");break;

case 6:printf("six");break;

case 7:printf("seven");break;

case 8:printf("eight");break;

case 9:printf("nine");break;

}

}

if (hundreds==0&&tens!=0) {

switch (tens){

case 1:printf("one ");break;

case 2:printf("two ");break;

case 3:printf("three ");break;

case 4:printf("four ");break;

case 5:printf("five ");break;

case 6:printf("six ");break;

case 7:printf("seven ");break;

case 8:printf("eight ");break;

case 9:printf("nine ");break;

}

switch (units){

case 0:printf("zero");break;

case 1:printf("one");break;

case 2:printf("two");break;

case 3:printf("three");break;

case 4:printf("four");break;

case 5:printf("five");break;

case 6:printf("six");break;

case 7:printf("seven");break;

case 8:printf("eight");break;

case 9:printf("nine");break;

}

}

if (hundreds==0&&tens==0){

switch (units){

case 1:printf("one");break;

case 2:printf("two");break;

case 3:printf("three");break;

case 4:printf("four");break;

case 5:printf("five");break;

case 6:printf("six");break;

case 7:printf("seven");break;

case 8:printf("eight");break;

case 9:printf("nine");break;

}

}

}

//将1~999的数字转换为英文单词

int convertIntToRealWords(int value){

int hundreds=0,tens=0,units=0;

hundreds=value/100;//得出百位上的数字

tens=value%100/10;//得出十位上的数字

units=value-100*hundreds-tens*10;//得出个位上的数字

//1到10的数

if(hundreds==0&&tens==0){

switch(units){

case 1:printf("one");break;

case 2:printf("two");break;

case 3:printf("three");break;

case 4:printf("four");break;

case 5:printf("five");break;

case 6:printf("six");break;

case 7:printf("seven");break;

case 8:printf("eight");break;

case 9:printf("nine");break;

}

}

//整百的数

if (hundreds!=0&&tens==0&&units==0){

switch(hundreds){

case(1) :printf("one hundred");break;

case(2) :printf("two hundred");break;

case(3) :printf("three hundred");break;

case(4) :printf("four hundred");break;

case(5) :printf("five hundred");break;

case(6) :printf("six hundred");break;

case(7) :printf("seven hundred");break;

case(8) :printf("eight hundred");break;

case(9) :printf("nine hundred");break;

}

}

//10到100之间的数

if (value>10&&value<100){

switch(tens){

case 2:printf("twenty ");break;

case 3:printf("thirty ");break;

case 4:printf("forty ");break;

case 5:printf("fifty ");break;

case 6:printf("sixty ");break;

case 7:printf("seventy ");break;

case 8:printf("eighty ");break;

case 9:printf("ninty ");break;

case 1:

if(units==1){

printf("eleven");

break;

}

else if (units==2){

printf("twelve");

break;

}

else if(units==3){

printf("thirteen");

break;

}

else if(units==4){

printf("forteen");

break;

}

else if(units==5){

printf("fifteen");

break;

}

else if(units==6){

printf("sixteen");

break;

}

else if(units==7){

printf("seventeen");

break;

}

else if(units==8){

printf("eighteen");

break;

}

else if(units==9){

printf("ninteen");

break;

}

else{

printf("ten");

break;

}

}

if(tens!=1){

switch(units){

case 1:printf("one");break;

case 2:printf("two");break;

case 3:printf("three");break;

case 4:printf("four");break;

case 5:printf("five");break;

case 6:printf("six");break;

case 7:printf("seven");break;

case 8:printf("eight");break;

case 9:printf("nine");break;

case 0:printf("zero");break;

}

}

}

//100~999之间的数

if (value>100&&value<1000){

if(tens==0&&units!=0){//如果十位为零,个位不为零,如102

switch(hundreds){

case(1) :printf("one hundred and ");break;

case(2) :printf("two hundred and ");break;

case(3) :printf("three hundred and ");break;

case(4) :printf("four hundred and ");break;

case(5) :printf("five hundred and ");break;

case(6) :printf("six hundred and ");break;

case(7) :printf("seven hundred and ");break;

case(8) :printf("eight hundred and ");break;

case(9) :printf("nine hundred and ");break;

}

switch(units){

case(1) :printf("one");break;

case(2) :printf("two");break;

case(3) :printf("three");break;

case(4) :printf("four");break;

case(5) :printf("five");break;

case(6) :printf("six");break;

case(7) :printf("seven");break;

case(8) :printf("eight");break;

case(9) :printf("nine");break;

}

}

if(tens!=0&&units!=0){//如果十位数与个位数均不为零

switch(hundreds){

case(1) :printf("one hundred ");break;

case(2) :printf("two hundred ");break;

case(3) :printf("three hundred ");break;

case(4) :printf("four hundred ");break;

case(5) :printf("five hundred ");break;

case(6) :printf("nin hundred ");break;

case(7) :printf("one hundred ");break;

case(8) :printf("one hundred ");break;

case(9) :printf("one hundred ");break;

}

switch(tens){

case(1) :printf("and ");break;

case(2) :printf("twenty ");break;

case(3) :printf("thirty ");break;

case(4) :printf("forty ");break;

case(5) :printf("fifty ");break;

case(6) :printf("sixty ");break;

case(7) :printf("seventy ");break;

case(8) :printf("eighty ");break;

case(9) :printf("ninety ");break;

}

if (tens==1){//若十位数为1,如111

switch(units){

case(1) :printf("eleven");break;

case(2) :printf("twelve");break;

case(3) :printf("thirteen");break;

case(4) :printf("fourteen");break;

case(5) :printf("fifteen");break;

case(6) :printf("sixteen");break;

case(7) :printf("seventeen");break;

case(8) :printf("eighteen");break;

case(9) :printf("nineteen");break;

}

}

else switch(units){// 若十位数不为1和0,个位数不为零

case(1) :printf("one");break;

case(2) :printf("two");break;

case(3) :printf("three");break;

case(4) :printf("four");break;

case(5) :printf("five");break;

case(6) :printf("six");break;

case(7) :printf("seven");break;

case(8) :printf("eight");break;

case(9) :printf("nine");break;

}

}

if(tens!=0&&units==0){//若十位不为零个位为0

switch(hundreds){

case(1) :printf("one hundred and ");break;

case(2) :printf("two hundred and ");break;

case(3) :printf("three hundred and ");break;

case(4) :printf("four hundred and ");break;

case(5) :printf("five hundred and ");break;

case(6) :printf("nin hundred and ");break;

case(7) :printf("one hundred and ");break;

case(8) :printf("one hundred and ");break;

case(9) :printf("one hundred and ");break;

}

switch(tens){

case 1:printf("ten");break;

case 2:printf("twenty");break;

case 3:printf("thirty");break;

case 4:printf("forty");break;

case 5:printf("fifty");break;

case 6:printf("sixty");break;

case 7:printf("seventy");break;

case 8:printf("eighty");break;

case 9:printf("ninty");break;

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值