【推荐】C语言超难编程题人民币转换陆金币等于多少人民币

考试题目和要点:

1、中文大写金额数字前应标明“人民币”字样。中文大写金额数字应用壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟、万、亿、元、角、分、零、整等字样填写。(30分)

2、中文大写金额数字到“元”为止的,在“元”之后,应写“整字,如¥ 532.00应写成“人民币伍佰叁拾贰元整”。在”角“和”分“后面不写”整字。(30分)

3、阿拉伯数字中间有“0”时,中文大写要写“零”字,阿拉伯数字中间连续有几个“0”时,中文大写金额中间只写一个“零”字,如¥6007.14,应写成“人民币陆仟零柒元壹角肆分“。(

输入描述:

输入一个double数

输出描述:

输出人民币格式

示例1

输入

151121.15

输出

人民币拾伍万壹仟壹佰贰拾壹元壹角伍分

如下是我写的代码:

#include

#include

typedef struct{

char temp[10];

}monkey_struct;

//单位和数组下标的对应关系

monkey_struct IToY(int number){

monkey_struct Yuan={"null"};

if(number < 0){

return Yuan;

}

if((number%2) == 0){

//十,千的判断

if((number % 4) == 0){

strcpy(Yuan.temp,"仟");

}else{

strcpy(Yuan.temp,"拾");

}

}else{

if((number >= 3) && (((number -3)%4) == 0)){

strcpy(Yuan.temp,"佰");

}else{

//判断是万还是亿

if((number == 5) || ((number >= 13) && (((number - 5) % 8) == 0) )){

strcpy(Yuan.temp,"万");

}

else{

if (number >= 9){

strcpy(Yuan.temp,"亿");

}

}

}

}

return Yuan;

}

//数字和大写金币之间的对应关系

monkey_struct NumToMonkey(char number){

monkey_struct monkey={"null"};

switch(number)

{

case '0':

strcpy(monkey.temp,"零");

break;

case '1':

strcpy(monkey.temp,"壹");

break;

case '2':

strcpy(monkey.temp,"贰");

break;

case '3':

strcpy(monkey.temp,"叁");

break;

case '4':

strcpy(monkey.temp,"肆");

break;

case '5':

strcpy(monkey.temp,"伍");

break;

case '6':

strcpy(monkey.temp,"陆");

break;

case '7':

strcpy(monkey.temp,"柒");

break;

case '8':

strcpy(monkey.temp,"捌");

break;

case '9':

strcpy(monkey.temp,"玖");

break;

default:

break;

}

return monkey;

}

int main(){

double a;

char input_result[256] = {};

char output_result[256];

char temp[256]= {};

char *p = input_result;

int i,len,count = 0;

monkey_struct yuan,monkey;

while(scanf("%lf",&a) != EOF){

//处理整数部分代码 begin

sprintf(output_result,"%0.2lf",a);

len = strlen(output_result);

//判断小数后面是否全部是0

for(int j =len -2 ;j < len;j++){

if (output_result[j] == '0')

{

count ++;

}

}

//对应字符串转阿拉伯人民币

if(len > 1)

{

for(int i = 0; i < len -3; i++)

{

yuan = IToY(len -i - 3);

if (i == 0 )

{

monkey =NumToMonkey(output_result[0]);

if ((output_result[0] != '0') && (strcmp(monkey.temp,"null"))){

strcat(input_result,monkey.temp);

if (strcmp(yuan.temp,"null")){

strcat(input_result,yuan.temp);

}

}

}else{

monkey =NumToMonkey(output_result[i]);

if (strcmp(monkey.temp, "null")){

strcat(input_result,monkey.temp);

if(strcmp(yuan.temp, "null")){

strcat(input_result,yuan.temp);

}

}

}

}

}

if (count == 2){

strcat(input_result,"整");

printf("人民币%s\n",input_result);

}else

{ //printf("人民币%s\n",output_result);

monkey =NumToMonkey(output_result[len-1]);

if(output_result[len-1] != '0'){

strcat(input_result,NumToMonkey(output_result[len-2]).temp);

strcat(input_result,"角");

strcat(input_result,monkey.temp);

strcat(input_result,"分");

printf("人民币%s\n",input_result);

}else{

strcat(input_result,NumToMonkey(output_result[len-2]).temp);

strcat(input_result,"角");

printf("人民币%s\n",input_result);

}

}

}

return 0;

}

3d光学测量仪

OGP光学影像测量机

小型影像测量仪

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至举报,一经查实,本站将立刻删除。