C语言 人民币的大写?

C语言 人民币的大写?,第1张

#include<stdio.h>

#include<math.h>

int main()

{

char a[11][20]={"零衡旁","壹","贰","叁","肆","伍","陆","柒","捌","玖"}

int n

while(scanf("%d",&n)!=EOF)

{

int t=0,b[111]={0},k=0

t=n

while(t!=0)//个位上的书提取出来

{

b[k++]=t%10

t/=10

}

for(int i=0i<10i++)//百位

{

if(b[2]==i)

printf("%s佰",a[i])

}

for(int i=0i<10i++)//十位

{

if(b[1]==i)

{

if(b[1]!=0)

printf("%s拾咐陪橡",a[i])

else

printf("零")

}

}

for(int i=0i<10i++)//个位

{

if(b[0]==i)

{

if(b[0]!=0)

printf("%s元整",a[i])

else

printf("元整")

}

}

printf("\n")

}

return 0

}

希望能帮到你,乱吵望采纳;

#include

<iostream.h>

#include

<math.h>

void

main()

{

double

x,i=10000000

int

j=0

unsigned

int

quotient,remainder

bool

beginFlag=0,zeroFlag=0

cout<<"请输入预转换数额(小于1亿):"

cin>>x

while

(x>=100000000

)

{

if

(j>=2)

{

cout<<"你的错误输入已达3次,你逗咐无权再输入!"<<endl

return

}

cout<<"你输入的金额超出转换范围,请重新输入!"<<endl

cout<<"请输入预转换数额(小于1亿):"

cin>>x

j++

}

if

(x<=0)

{

cout<<"零元整"<<endl

return

}

x=floor(x*100

+0.5)/100

//小数点后2位四舍五入

while

(i>0.001)

{

if

(i>0.9)

quotient=(unsigned

int)floor(x/i)

else

{

if

(i>=0.099)

quotient=(unsigned

int)floor(x*10)

else

quotient=(unsigned

int)floor(x*100)

}

remainder=quotient%10

if

(remainder!=0)

beginFlag=1

if

((zeroFlag==1)

&&

(beginFlag==1)

&&

(i>1000)

&&

(remainder>0))

cout<<"零"

switch

(remainder)

//输出大写数字槐指拿

{

case

0:

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

}

if

(remainder>0)

zeroFlag=0

else

if

(beginFlag==1)

zeroFlag=1

if

(beginFlag==1)

//输出单位

{

if

((i==10000000)

&&

(remainder>0))

cout<<"仟"

if

((i==1000000)

&&

(remainder>0))

cout<<"百"

if

((i==100000)

&&

(remainder>0))

cout<<"十"

if

(i==10000)

cout<<"万"

if

((i==1000)

&&

(remainder>0))

cout<<"仟"

if

((i==100)

&&

(remainder>0))

cout<<"百"

if

((i==10)

&&

(remainder>0))

cout<<"十"

if

(i==1)

cout<<"元"

if

((i>=0.09)

&&

(i<1)

&&

(remainder>0))

cout<<"角"

if

((i>=0.009)

&&

(i<0.1)

&&

(remainder>0))

cout<<"分"

}

i=i/10

}

cout<<"整"<<endl

}

#include "stdafx.h"

#include<stdio.h>

#define NUM1 1

#define NUM2 2

#define NUM3 3

#define NUM4 4

#define NUM5 5

#define NUM6 6

#define NUM7 7

#define NUM8 8

#define NUM9 9

#define NUM 10

#define NUM10 11

#define NUM100 12

#define NUM1000 13

#define NUM10000 14

#define NUM100000 15

#define NUM1000000 16

#define NUM10000000 17

#define NUM100000000 18

#define NUM1000000000 19

#define NUM10000000000 20

void show_num(int *save,int count)

{

int i=count

while(i>=0)

{

switch(save[i])

{

case 1:

printf("一")

break

case 2:

printf("二")

break

case 3:

printf("三")

break

case 4:

printf("四")

break

case 5:

printf("五")

break

case 6:

printf("六")

break

case 7:

printf("七")

break

case 8:

printf("八")

break

case 9:

printf("九")

break

case NUM10:

printf("十")

break

case NUM100:

printf("百")

break

case NUM1000:

printf("睁链燃千唤哪")

break

case NUM10000:

printf("万"悉虚)

break

case NUM100000:

printf("十")

break

case NUM1000000:

printf("百")

break

case NUM10000000:

printf("千")

break

case NUM100000000:

printf("亿")

break

default:

break

}

i--

}

printf("\n")

}

int main()

{

long int num=0,i=0

int save[20]={0}

printf("请输入要大写的数值:")

scanf("%d",&num)

while(num)

{

save[i]=num%10

num=num/10

save[i+1]=NUM10+i/2

i+=2

}

show_num(save,i-2)

return 0

}

如果有需要,自己太添加,就在那个switch里面,还有宏,

但是不能超过你定义的类型的最大值,否则会出错哦

汉字部分自己改把


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12570350.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存