栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

7-23 币值转换 (20 分)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

7-23 币值转换 (20 分)

题目详情 (pintia.cn)

#include 
int main()
{
	int i=0,j,n;
	scanf("%d",&n);
	char a[9];
	char b[9]={'n','S','B','Q','W','S','B','Q','Y'};  //位的名称存入数组b
	if(n==0){
		printf("an");
	} else{
		while(n!=0){   //数字存入数组a
		a[i]=n%10;
		n=n/10;
		i++;
		}
		i=i-1;
		for(;i>=0;i--){            //数组a反向输出
			if(a[i]==0){           
				if(i==4){               //万位为0的情况
					if(a[8]!=0 && a[7]+a[6]+a[5]+a[4]==0  ){   //有亿位,且万位均为零
						printf("a");                           //输出一个零(如100004800)
					}else{
						printf("W");                           //否侧万位就输出一个万。
					}
				}else{
					if(a[i-1]==0){                              //重复0不输出
					continue;
					}else{                                 // 一般的0就输出零,没有位的名称
						printf("a");                
					}
				}	
			}else{
				printf("%c%c",a[i]+'a',b[i]);
			}	
		}
	}
	
	return 0;
}




总结:

数字存在一个数组,位数名称存在一个数组。由大到小反向输出两个数组。

其他就是对于读数规则的判定。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/290616.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号