今天遇见一道“念整数”的题,从中,我第一次尝试按逻辑写算法(之前只在脑子里想完就写,过程中出错再改再补充),感觉书写更充分一些。
由于缺少online系统,首次学习了如何去查看程序运行用时:
(#include<time.h>,调用对应头文件)、(clock_t,对应的数据类型)再计算时差即可,虽然学的时候有一步ms 换算成s ,但是我目前更希望看到ms,因为这样更类似在线系统(个人想法)。
首次自行使用了switch(type)--case 常量:表达式。在自己写完之后,再去观摩别人的用法,发现他们的水平确实高,也可能是我水平不够,下次我也要试试那样的写法。(编译器:VS2022)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <time.h>
int main(){
//clock_t start_t, end_t; //程序运行时间
//double total_t;
//start_t = clock();
int a, t, m;
int cnp = 1;
scanf("%d", &a);
//判断正负
if (a < 0) {
t = -a;
m = -a;
printf("fu ");
}
else {
t = a;
m = a;
}
//判断输入的数的位数及获得除数
while (t > 9) {
cnp *= 10;
t /= 10;
//printf("t=%d,cnp=%d\n", t, cnp);
}
//判断输出整数读音
int n;
while (m > 0) {
n = m / cnp;
m %= cnp;
cnp /= 10;
//printf("n=%d,m=%d,cnp=%d\n", n, m, cnp);
switch (n) {
case 0:
printf("ling ");
break;
case 1:
printf("yi ");
break;
case 2:
printf("er ");
break;
case 3:
printf("san ");
break;
case 4:
printf("si ");
break;
case 5:
printf("wu ");
break;
case 6:
printf("liu ");
break;
case 7:
printf("qi ");
break;
case 8:
printf("ba ");
break;
default:
printf("jiu ");
}
}
if (m == 0) {
n = m;
printf("ling");
}
//end_t = clock();
//total_t = end_t - start_t;
//printf("总用时为:%fms", total_t);
return 0;
}