-
Notifications
You must be signed in to change notification settings - Fork 1
/
4-b1.cpp
219 lines (215 loc) · 4.59 KB
/
4-b1.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
/*1953609 软件 王灏廷*/
#include <iostream>
#include<math.h>
using namespace std;
/* 可根据需要添加相应的内容 */
/***************************************************************************
函数名称:
功 能:输出大写的0~9
输入参数:
返 回 值:
说 明:除本函数外,不允许任何函数中输出“零”-“玖”!!!!!!
***************************************************************************/
void daxie(int num, int flag_of_zero)
{
/* 不允许对本函数做任何修改 */
switch (num) {
case 0:
if (flag_of_zero) //此标记什么意思请自行思考
cout << "零";
break;
case 1:
cout << "壹";
break;
case 2:
cout << "贰";
break;
case 3:
cout << "叁";
break;
case 4:
cout << "肆";
break;
case 5:
cout << "伍";
break;
case 6:
cout << "陆";
break;
case 7:
cout << "柒";
break;
case 8:
cout << "捌";
break;
case 9:
cout << "玖";
break;
default:
cout << "error";
break;
}
}
/* 可根据需要自定义其它函数(也可以不定义) */
/***************************************************************************
函数名称:
功 能:
输入参数:
返 回 值:
说 明:
***************************************************************************/
int main()
{
/* 按需完成 */
double a;
int tag = 0;
cout << "请输入[0,100亿)之间的数字:" << endl;
cin >> a;
cout << "大写结果是:" << endl;
const int a1 = static_cast<int>(a / 10);
const int billion = a1 / 100000000;
const int hundred_million = a1 / 10000000 % 10;
const int ten_million = a1 / 1000000 % 10;
const int million = a1 / 100000 % 10;
const int hundred_thousand = a1 / 10000 % 10;
const int ten_thousand = a1 / 1000 % 10;
const int thousand = a1 / 100 % 10;
const int hundred = a1 / 10 % 10;
const int ten = a1 % 10;
const int yuan = static_cast<int>(floor((a / 10.0 - floor(a / 10)) * 10 + 1e-7));
const int jiao = static_cast<int>(round((a - floor(a)) * 100)) / 10 % 10;
const int fen = static_cast<int>(round((a - floor(a)) * 100)) % 10;
daxie(billion,0);
if (billion != 0)
{
cout << "拾";
if (hundred_million == 0)
cout << "亿";
}
daxie(hundred_million, 0);
if(hundred_million!=0)
cout << "亿";
if (ten_million != 0)
{
daxie(ten_million, 0);
cout << "仟";
if (million == 0 && hundred_thousand == 0 && ten_thousand == 0)
cout << "万";
}
else
tag = 1;
if (million != 0)
{
if (hundred_million != 0 || billion != 0)
daxie(0, tag);
daxie(million, tag);
cout << "佰";
if (hundred_thousand == 0 && ten_thousand == 0)
cout << "万";
tag = 0;
}
else
tag = 1;
if (hundred_thousand != 0)
{
if (hundred_million != 0 || billion != 0 || million != 0)
daxie(0, tag);
daxie(hundred_thousand, tag);
cout << "拾";
if (ten_thousand == 0)
cout << "万";
tag = 0;
}
else
tag = 1;
if (ten_thousand != 0)
{
if (hundred_million != 0 || billion != 0 || million != 0|| hundred_thousand != 0)
daxie(0, tag);
daxie(ten_thousand, tag);
cout << "万";
tag = 0;
}
tag = 0;
if (thousand != 0)
{
daxie(thousand, 0);
cout << "仟";
}
else
tag = 1;
if (hundred != 0)
{
if (billion != 0 || hundred_million != 0 || ten_million != 0 || million != 0 || hundred_thousand != 0 || ten_thousand != 0|| thousand != 0)
daxie(0, tag);
daxie(hundred, tag);
cout << "佰";
tag = 0;
}
else
tag = 1;
if (ten != 0)
{
if (billion != 0 || hundred_million != 0 || ten_million != 0 || million != 0 || hundred_thousand != 0 || ten_thousand != 0 || thousand != 0||hundred!=0)
daxie(0, tag);
daxie(ten, tag);
cout << "拾";
tag = 0;
}
else
tag = 1;
int tag_yuan = 0;
if (yuan != 0 || billion != 0 || hundred_million != 0 || ten_million != 0 || million != 0 || hundred_thousand != 0 || ten_thousand != 0 || thousand != 0 || hundred != 0 || ten != 0)
{
tag_yuan = 1;
}
if (yuan != 0)
{
if (billion != 0 || hundred_million != 0 || ten_million != 0 || million != 0 || hundred_thousand != 0 || ten_thousand != 0 || thousand != 0 || hundred != 0 || ten != 0)
daxie(0, tag);
daxie(yuan, tag);
cout << "圆";
}
else if (tag_yuan == 1)
{
cout << "圆";
}
if (jiao == 0 && fen == 0)
{
if (yuan == 0)
{
if (billion == 0 && hundred_million == 0 && ten_million == 0)
{
if (million == 0 && hundred_thousand == 0 && ten_thousand == 0)
{
if (thousand == 0 && hundred == 0 && ten == 0)
{
daxie(0, 1);
cout << "圆";
}
}
}
}
cout << "整";
}
tag = 0;
if (jiao != 0)
{
daxie(jiao, tag);
cout << "角";
}
else if (jiao == 0 && fen != 0)
{
if (tag_yuan == 1)
daxie(0,1);
}
if (fen != 0)
{
daxie(fen, tag);
cout << "分";
}
else if (fen == 0 && jiao != 0)
cout << "整";
cout << endl;
return 0;
}