读书人

将一个正整数转换成quot;英文表示字符串quot;解

发布时间: 2012-04-03 12:38:19 作者: rapoo

将一个正整数转换成"英文表示字符串"
由用户输入任意正整数num,由程序员负责将该正整数转换为如下形式的英语表示字符串并显示出来,32760 对应three-two-seven-six-zero。

下面是一段代码?:
#include<iostream>
using namespace std;

int main()
{
int n, a[10];
int index = 0;
char eng[10][6] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
cout << "Input a positive integer: ";
cin >> n;
while(n)
{
a[index] = n%10;
index++;
n /= 10;
}
cout << "Eng_exp: " << eng[a[index-1]];
for(int i=index-2; i>=0; i--)
{
cout << "-" << eng[a[i]];
}
cout << endl;
return 0;
}

上面定义的二维数组表示什么意思啊 数字和字母是怎么对应起来的哦 谢谢啊 小弟想不明白




[解决办法]
二维数组表示字符串数组。每个字符串的最大长度是5.

算法:

1)将输入的数字从低位到高位诸位取出放入a数组中
2)将数组a从高位到低位顺序取出显示
[解决办法]
int main()
{
int n, a[10];
int index = 0;//从第0个位置开始放
//eng[i]代表数字是i的字符串。每个eng[i]是一个可以放6个char的字符串
char eng[10][6] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
cout << "Input a positive integer: ";
cin >> n;
//从n的个位到最高位放进a数组
while(n)
{
a[index] = n%10;
index++;
n /= 10;
}
//输出数组a
cout << "Eng_exp: " << eng[a[index-1]];
for(int i=index-2; i>=0; i--)
{
cout << "-" << eng[a[i]];
}
cout << endl;
return 0;
}
[解决办法]

C/C++ code
//       _    _ _ _// eng->[0]->|_zero_|//      |_|   _ _ _ //      [1]->|_one_|//      |_|   _ _ _ _ _ _ _//      [2]->|_|_|_|_|_|_|_|//      |_|   _ _ _ _ _ _ _//      [3]->|_|_|_|_|_|_|_|//      |_|   _ _ _ _ _ _ _//      [4]->|_|_|_|_|_|_|_|//      |_|   _ _ _ _ _ _ _//      [5]->|_|_|_|_|_|_|_|
[解决办法]
探讨

引用:
二维数组表示字符串数组。每个字符串的最大长度是5.

算法:

1)将输入的数字从低位到高位诸位取出放入a数组中
2)将数组a从高位到低位顺序取出显示

我就是不知道 char[10][6] 这是定义 是什么意思啊 谢谢你了

读书人网 >C++

热点推荐