原题链接:蓝桥杯基础练习VIP-报时助手
拆解判断:
#include<stdio.h>
void Ten(int num)//在十位上的数大于1时,找到对应的“整数”输出
{
switch (num)
{
case 2:printf("twenty "); break;
case 3:printf("thirty "); break;
case 4:printf("forty "); break;
case 5:printf("fifty "); break;
}
}
void TS(int num)//将当前“整个数”所对应的输出
{
switch (num)
{
case 10:printf("ten "); break;
case 11:printf("eleven "); break;
case 12:printf("twelve "); 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;
}
}
void Single(int num)//判断个位数的值并对应输出
{
switch (num)
{
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;
}
}
void find(int h)
{
if(h/10==1)//判断当前数的十位是否为1,为1代表数在10-19的范围,整体一起输出
TS(h);
else if(h/10>1)//若当前十位大于1,则拆开输出
{
Ten(h/10);//先输出特定的十位表示
Single(h%10);//在输出个位表示
}
else
Single(h%10);//当前只有1位数,直接按个位输出
}
int main()
{
int h,m;//h代表时,m代表分
scanf("%d%d",&h,&m);
if(h==0)//判断当前时是否为0
printf("zero ");
else find(h);
if(m==0)//判断当前分是否为0
printf("o'clock");
else
find(m);
return 0;
}
0 分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复