1. 程式人生 > >一百萬內的任意數字用英語正確讀出

一百萬內的任意數字用英語正確讀出

題目分析

英文讀數時要讀出百位和十位和個位
分別用函式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;
}

執行結果如下
在這裡插入圖片描述
在這裡插入圖片描述

今天這個程式有點簡單 不過分析起來就不是那麼回事了,往往我們習以為常的做法往往難以找出規律,所以保有各個好奇且鑽研的心。