对于有三种或更多的结构,C语言除了用多分支选择结构else if之外,C语言还提供了switch的结构。

switch语句的执行过程为:首先计算表达式的值,然后依次与常量表达式依次进行比较,若表达式的值与某常量表达式相等,则从该常量表达式处开始执行,直到switch语句结束。若所有的常量表达式的值均不等于表达式的值,则从default 处开始执行。一般形式如下:

switch(表达式) /*首先计算表达式的值*/
{ case 常量表达式1:语句1; case 常量表达式2:语句2; case 常量表达式3:语句3; // …… case 常量表达式n:语句n; default:语句n+1;
}
switch(value)
{case 1:printf("one");case 2:printf("two");case 3:printf("three");default:printf("other");
}

需要注意的是,switch中每个条件(case)是比较相等与否,而else if中的条件除了可以比较相等以外,还可以满足某个区间,这是两者的使用范畴不一样,请大家多多上机,尝试修改代码,多多体会!

break,顾名思义,跳出的意思,仅用于跳出switch结构循环结构,用于提前结束switch结构或循环。

如switch结构中,我们知道switch结构会判断从哪个case开始执行,然后接着后面所有的case后面的语句都执行完,但通常情况下我们希望仅执行一个case后面的语句,不希望输出多余的信息,因此这个时候就可以使用break语句跳出结束switch结构,如以下程序:

#include<stdio.h>
int main()
{int value;scanf("%d",&value);switch(value){case 1:printf("one");break;case 2:printf("two");break;case 3:printf("three");break;default:printf("other");break;}return 0;
}

灵活运用以上函数,即可做出计算机阿拉伯数字转换英文数字的c程序,如下:

#include<stdio.h>
int weishu_for_a(int a) {//负责单独的十位数显示(十位数大于2的时候)switch(a) {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;default:;}
}
int weishu_again_for_tens(int a,int b) {//负责分配十位数和个位数的显示int c=a*10+b;if(c>10&c<20) {weishu_for_ten(c);} else if(c>=20) {weishu_for_a(a);weishu_again(b);} else if(c<10) {weishu_again(b);} else if(c=10) {printf("ten ");}
}
int weishu_for_ten(int a) {//负责十位数和个位数组合显示(十位数等于1的时候)switch(a) {case 12:printf("twelve ");break;case 11:printf("eleven ");break;case 13:printf("thirteen ");break;case 14:printf("fourteen ");break;case 15:printf("fifteen ");break;case 16:printf("sixteen ");break;case 17:printf("seventeen ");break;case 18:printf("eighteen");break;case 19:printf("nineteen");break;case 20:printf("twenty ");default:;}
}
int weishu_again(int b) {//负责单独的个位数字的显示(十位数大于等于2或者十位数等于0的时候)switch(b) {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;default:;}
}
int weishu(int *a) {//负责显示百位数字,并把十位数字和个位数字交给其他函数处理int bits,tens,hunderds;hunderds=*a/100;tens=(*a%100)/10;bits=*a-100*hunderds-10*tens;if(hunderds>=1) {weishu_again(hunderds);printf("hunderd and ",hunderds);}weishu_again_for_tens(tens,bits);
}
int _value(int value,int thousand,int million) {//主要负责主干部分,负责1——20数字的输出显示,以及区分千位数,兆位数,并转移到其他函数显示。switch(value) {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 10:printf("ten");break;case 12:printf("twelve");break;case 11:printf("eleven");break;case 20:printf("twenty");break;case 13:printf("thirteen");break;case 14:printf("fourteen");break;case 15:printf("fifteen");break;case 16:printf("sixteen");break;case 17:printf("seventeen");break;case 18:printf("eighteen");break;case 19:printf("nineteen");break;default:if(value>=1000000) {million=value/1000000;value=value-1000000*million;}if(value>=1000) {thousand=value/1000;value=value-1000*thousand;}putchar('\n');if(million!=0) {weishu(&million);printf("million ");}if(thousand!=0) {weishu(&thousand);printf("thousand ");}weishu(&value);;}}
int zhuanhuan() {//负责输入数字,以及检测数字是否符合显示标准int value,thousand=0,million=0;scanf("%d",&value);if(value<=100000000){_value(value,thousand,million);}else{printf("数值溢出");}return 0;
}
int main(){zhuanhuan();
}

c语言阿拉伯数字转换英文数字相关推荐

  1. 阿拉伯数字转换英文数字表示算法解析及其实现

    1.阿拉伯数字转换英文数字表示算法解析   例如:   1,111,111,111,111,111.00   1千1百1十1兆1千1百1十1亿1千1百1十1万1千1百1十1     分整数部分处理和小 ...

  2. 大写汉字转阿拉伯数字c语言,阿拉伯数字转中文数字方法详解(C++实现)

    阿拉伯数字与中文数字没有一一对应关系,不存在直接转换的公式化算法,因此需要根据两种数字体系的特点精心构造转换算法. 中文计数有一个特点,就是"零"的使用变化多端.阿拉伯数字中数字的 ...

  3. 阿拉伯数字转换英文,适用于英文合同和国际贸易单证

    实现自动将国际贸易单证(合同.发票)等中的金额自动转换成英文大写. 作为初学者,练练手,记录下学习过程. 简单分析: 单证中的英文大写必须写全额,即保留小数点两位,不进行四舍五入 英文大写中只能有一个 ...

  4. 大写汉字转阿拉伯数字c语言,阿拉伯数字转换成中文大写数字

    原创作者ACN站:3mile 如:550065转换成"五十五万零六十五"或"伍拾伍万零陆拾伍" 可作为UDF使用的. NUM2CWORD($number,$vV ...

  5. android 阿拉伯数字转汉字,Android将阿拉伯数字转换为英文数字

    试试这个: String number = arabicToDecimal("۴۲"); // number = 42; private static final String a ...

  6. C语言 阿拉伯数字转换为汉语大写数字金额程序分析及源码

    C语言 阿拉伯数字转换为汉语大写数字金额程序分析及源码 数据结构:用一个整型变量储存输入数字   大家可能会感觉用字符串取位更方便一些·· 但是相应的,字符串失去了数字原有的意思 00100和100对 ...

  7. 快速听懂英文数字和中英文数字转换教程

    快速听懂英文数字和中英文数字转换教程 Copyright (c) 2008 Lei Chen(hide1713@gmail.com). Permission is granted to copy, d ...

  8. 《读九章算术学Python》如何用Python编程实现阿拉伯数字转换成汉字数字?

    第6章 数量转换 Python编程基础 字典 字符串操作 if-elif-else语句 递归 前面的输入和输出都是阿拉伯数字,这一章我们来看一下如何实现阿拉伯数字和汉字数字之间的相互转换. 6.1 阿 ...

  9. C语言字符类型和数字类型互相转换

    int类型转换为char 直接在int变量后加上一个'0': 例如: int a = 10; printf("%c\n",a+'0') char转换为int类型 char类型的变量 ...

最新文章

  1. 2D秒变3D!视角还能随意切!华为上交提出:CIPS-3D:基于GAN的3D感知生成器
  2. 院长齐聚,答疑解惑 | 清华-青岛数据科学研究院“院长接待日”成功举办
  3. SSM项目使用GoEasy 获取客户端上下线实时状态变化及在线客户列表
  4. 知识点 组合数学 卡特兰数
  5. 如何在React Native中使用文本输入组件?
  6. [转载]Dynamic Database Switching in Rails - How to do it
  7. 云计算分布式计算机硬件在哪,初学者: 云计算和分布式计算的概念
  8. 第一阶段 PHP基础.函数
  9. a59s刷机包卡刷 oppo_OPPO A59S刷机包下载|OPPO A59S刷机包官方下载-太平洋下载中心...
  10. appleId登录java
  11. sci一区二区 SCI、EI、ISTP分别指什么
  12. Vue3.0快速上手-重要知识点罗列-系列二
  13. Linux 磁盘管理的命令
  14. 四川电子招投标注意事项技巧
  15. 数据治理:元数据及元数据管理策略、方法和技术
  16. 华为IoT生态品牌扩大朋友圈,方舟实验室首度亮相...
  17. 静态数码管和动态数码管
  18. 2022中国中医药产业展,山东医药保健展,济南药交会9月举办
  19. 三星、华为、索尼、联发科等公司已参与 谷歌的 Fuchsia 项目
  20. c语言出租车计价编程,[C语言][PTA][2019Fall] 7-18 出租车计价 (15 point(s))

热门文章

  1. 一道受用终身的测试题
  2. keepalive+nginx高可用K8S集群部署
  3. 操作系统之进程管理习题
  4. 财务自由到底是啥感觉啊...
  5. 【LaTeX】表格调整行高、列宽、合并显示等操作
  6. matlab画y等于x平方,如何用matlab画Y=X^2的图啊?
  7. GBA火焰纹章改版-智慧的结晶
  8. Fine Dining(最短路应用)
  9. cati服务器授权信息无效,CATI简易操作.doc
  10. 感谢网友,让我实现了Zbrush笔刷自由