delphi 阿拉伯数字转化成中文数字
答案:2 悬赏:40 手机版
解决时间 2021-03-23 07:55
- 提问者网友:抽煙菂渘情少年
- 2021-03-22 19:33
delphi 阿拉伯数字转化成中文数字
最佳答案
- 五星知识达人网友:蓝房子
- 2021-03-22 19:47
数要小于1亿,代码如下,供参考:
var
n:longint;
a:array[1..8] of integer;
b:array[1..8] of string;
i,k,m:integer;
s,st:string;
procedure insert(var m:integer;x:integer);
begin
if m=0 then a[1]:=x else a[m+1]:=x;
inc(m);
end;
begin
n:=83007305;
{readln(n);}
m:=0;
b[1]:=''; b[2]:='十'; b[3]:='百'; b[4]:='千'; b[5]:='万';
b[6]:='十'; b[7]:='百'; b[8]:='千';
while n>0 do begin
insert(m,n mod 10);
n:=n div 10;
end;
s:='';
for i:=m downto 1 do begin
str(a[i]:0,st);
k:=length(s);
if i<>5 then
if a[i]=0 then begin
if copy(s,k-1,2)<>'零' then s:=s+'零';
end else s:=s+st+b[i];
if i=5 then
if a[i]=0 then begin
if copy(s,k-1,2)<>'零' then s:=s+'万'
else s:=copy(s,1,k-2)+'万';
end else s:=s+st+b[i];
end;
if copy(s,length(s)-1,2)='零' then s:=copy(s,1,length(s)-2);
writeln(s);
end.
var
n:longint;
a:array[1..8] of integer;
b:array[1..8] of string;
i,k,m:integer;
s,st:string;
procedure insert(var m:integer;x:integer);
begin
if m=0 then a[1]:=x else a[m+1]:=x;
inc(m);
end;
begin
n:=83007305;
{readln(n);}
m:=0;
b[1]:=''; b[2]:='十'; b[3]:='百'; b[4]:='千'; b[5]:='万';
b[6]:='十'; b[7]:='百'; b[8]:='千';
while n>0 do begin
insert(m,n mod 10);
n:=n div 10;
end;
s:='';
for i:=m downto 1 do begin
str(a[i]:0,st);
k:=length(s);
if i<>5 then
if a[i]=0 then begin
if copy(s,k-1,2)<>'零' then s:=s+'零';
end else s:=s+st+b[i];
if i=5 then
if a[i]=0 then begin
if copy(s,k-1,2)<>'零' then s:=s+'万'
else s:=copy(s,1,k-2)+'万';
end else s:=s+st+b[i];
end;
if copy(s,length(s)-1,2)='零' then s:=copy(s,1,length(s)-2);
writeln(s);
end.
全部回答
- 1楼网友:往事埋风中
- 2021-03-22 21:06
同问。。。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯