一百万内的任意数字用英语正确读出

题目分析

英文读数时要读出百位和十位和个位
分别用函数GetSinData(int data)
GethundredData(int data)
GetThousData(int data)

还要获取级数就是获取thousand以来读取更大的数字

GetSinData(int data) 函数如下
void GetSinData(int data)//读出个位数
{
	switch (data)
	{
	case 1:printf("one "); break;
	case 2:printf("two "); break;
	case 3:printf("there "); 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("night "); break;
	}
}

GetHundredData(int data)函数如下

void GetHundredData(int data)//读取百位内的数字
{
	int data1;
	data1 = data / 100;
	GetSinData(data1);//读出百位
	if (data1 != 0)
	{
		printf("hundred ");
	}
	int data2,data3,data4;
	data2 = data %100;
	switch (data2)
	{
	case 1:printf("one "); break;
	case 2:printf("two "); break;
	case 3:printf("there "); 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("night "); break;
	case 10:printf("ten "); break;
	case 11:printf("eleven "); break;
	case 12:printf("twelve "); break;
	case 13:printf("thirteen "); break;
	case 14:printf("forteen "); break;
	case 15:printf("fifteen "); break;
	case 16:printf("sixteen "); break;
	case 17:printf("seventeen "); break;
	case 18:printf("eightteen "); break;
	case 19:printf("nineteen "); break;
	case 20:printf("twenty "); break;
	}
	data3 = data2 / 10;//存十位
	data4 = data2 % 10;//存末位
	switch (data3)//打出十位
	{
    case 2:printf("twety "); 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("nighty "); break;
	}
	GetSinData(data4);
}

GetThousData(int data)函数如下

void GetThousData(int data)
{
	if (data / 1000 > 0)
	{
		data = data / 1000;
		GetHundredData(data);
		printf("thousand and ");
	}
}

主函数如下

#include <stdio.h>
int main()
{
	int data,data1;
	printf("请输入要读取的数字:");
	scanf("%d", &data);
    //读千位以上的读法和读千位以下的读法相同
	data1 = data % 1000;
	GetThousData(data);
	GetHundredData(data1);
    return 0;
}

执行结果如下
在这里插入图片描述
在这里插入图片描述

今天这个程序有点简单 不过分析起来就不是那么回事了,往往我们习以为常的做法往往难以找出规律,所以保有各个好奇且钻研的心。

猜你喜欢

转载自blog.csdn.net/qq_43079376/article/details/83450516