数据结构·读数字

在这里插入图片描述

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。

学习日记

                                                                 读数字

输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成中文读取。如23108元,转换后变成“贰万叁仟壹百零捌”元。为了简化输出,用0-9表示零~玖,用S、B、Q、W、Y分别代表拾、百、仟、万、亿。于是23108元应被转换输出为“2W3Q1B08”元。

输入格式:

输入在一行中给出一个不超过9位的非负整数

输出格式:

在一行中输出转换后的结果。注意“零”的用法必须符合中文读取习惯。如10001会读做“一万零一”,为统一起见,12读做1S2,120000读作1S2W。

输入样例:

23108

输出样例:

2W3Q1B08

代码长度限制                                                                                 16 KB

时间限制                                                                                        400 ms

内存限制                                                                                        64 MB

#include<stdio.h>
#include<string.h>    

int main()
{
    char s[9]={'0','S','B','Q','W','S','B','Q','Y'}; 
	char num[10];
    
	scanf("%s",num);
    
	int len,i=0,c=0;
    
    len=strlen(num);         //计算字符串长度
    
	if (strcmp(num,"0")==0)  //字符串比较
    {
        printf("0");
    }
	else
    {
		while(i<len)
        {
			if(num[i]!='0')
            { 
		        printf("%c",num[i]);
				if (s[len-i-1]!='0')
                {
                    printf("%c",s[len-i-1]);
                }
				c=0;  
				i++;
			}
			else
            {  
				c = 1;
				i++;
			}
			if(num[i]!='0'&&num[i]!='\0'&&c&&i!=len-4)
            {
                printf("0");
            }
			else if(c&&i==len-4)
            {
                printf("W");
            }
		}
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/m0_63794226/article/details/126794384