输入一个正整数N,输出它的英文表达。[C语言]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了输入一个正整数N,输出它的英文表达。[C语言]相关的知识,希望对你有一定的参考价值。

输入一个正整数N,输出它的英文表达。例如:输入1,输出one;输入12,输出twelve;输入135,输出one hundred thirty five……。编写程序实现之。

#include <iostream>
#include<string>
#include <vector>
#include<sstream>
using namespace std;
using namespace std;
string digits[20]="",
"ONE","TWO", "THREE","FOUR","FIVE",
"SIX","SEVEN","EIGHT","NINE","TEN",
"ELEVEN", "TWELVE", "THIRTEEN", "FOURTEEN",
"FIFTEEN","SIXTEEN","SEVENTEEN","EIGHTEEN","NINETEEN"
;
string tens[10]="","",
"TWENTY","THIRTY","FORTY", "FIFTY","SIXTY","SEVENTY","EIGHTY","NINETY";
string hunds[10]="",
"ONE HUNDRED","TWO HUNDRED", "THREE HUNDRED","FOUR HUNDRED","FIVE HUNDRED",
"SIX HUNDRED","SEVEN HUNDRED","EIGHT HUNDRED","NINE HUNDRED"
;

int main()

int m;
double n;
while(cin>>n)

m=(int)n;
if(m<=1)
cout<<(m?"ONE":"ZERO");
else

int f1=0;
if(m!=0)

if(m/100>0)

cout<<hunds[(int)(m/100)];
f1=1;

m=m-(int)(m/100)*100;
if(m/10>1)

if(f1)
cout<<" ";
cout<<tens[(int)(m/10)];
m=m-(int)(m/10)*10;
if(m>0)
cout<<" "<<digits[m];

else

if(m>0)

if(f1)
cout<<" ";
cout<<digits[m];



else
cout<<"ZERO";


int cents = ((n+0.005)-(int)n)*100;
cout<<"\n";

return 0;
//范围是0-999
参考技术A 这样吧,我告诉你思想,编程我就不了。
1.你可以将一个整数N利用他对10的倍数进行取余,比1234,为1,2,3,4
2,最后,将整数N,的每一位按照从高们到低位放到一个数组中,然后利用swith语句对比,如果是1就给出one,2 tow,3,three,比如1234的每一位是从高位到低位1,2,3,4放入数组a中,.利用
for(i=0;i<N.length,i++)//a.length为整数N的位数
int num;
switch(num=a[i])
case 1:printlf("one");break;
case 2:printf("two);break;
........................
希望对你有帮助!
貌似我理解错你的意思了!
参考技术B ‘\t’是字符,是一个转义字符,转义字符很多,而且‘\t’还可以表示‘空白符’相当于8个空格;类似的还有,空格符,‘\r’,‘|n’,等都可以表示空白符,windows下的c语言‘\n’是回车与换行的综合,linux就是分开的

以上是关于输入一个正整数N,输出它的英文表达。[C语言]的主要内容,如果未能解决你的问题,请参考以下文章

C语言:输入n(小于10的正整数),输出如下形式的数组?

c语言,任意输入一个五位正整数,逆序输出每一位上的数

C语言!!!!!!!!!!!由键盘输入一个正整数,判断该数是不是为平方数,是输出Y,否则输出N

c语言:计算并输出n,其中n是从键盘上输入的一个不大于10的正整数

用C语言编程:判断输入的正整数是不是既是3又是5的整数倍,若是则输出yes,否则输出no

正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。