翁凯C语言程序设计入门第五周测试:念整数

这个测试一开始没想到解决办法,学的不是很好,就从网上看了一个别人写的,确实有启发,所以本篇文章是转载的。原文链接:中国大学MOOC课程《程序设计入门——C语言》翁恺老师 第五周测试题(习题记录)_你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数-CSDN博客

代码:

#include <stdio.h>
int main()
{
	int num;//定义一个数字
	int innum;//定义逆序数
	int ret;//存储取得的最右边的一位数字 
	int count = 0;//定义数位,并初始化为0 
	
	scanf("%d", &num);
	if ( num<0 ) {
		num = -num;    //将负数转化为正数 
		printf("fu ");
	}
	
	while ( num>0 )    //while循环进行逆序(如果输入数字为零,那么不需要逆序,直接进入下面的do-while,零后面没有其他的数字,所以直接输出)
	{
		ret = num%10;  //取得最后的一位数字 
		innum = innum*10 + ret;  //逆序 
		count ++;          //count计数器累计输出的数字的位数
		num /= 10;     //去掉最后的数字
	}
	do {                  //对逆序后的数字从最右端开始逐位判断
		ret = innum%10;
		innum /= 10;
		switch ( ret )
		{
			case 0: printf("ling"); break;
			case 1: printf("yi"); break;
			case 2: printf("er"); break;
			case 3: printf("san"); break;
			case 4: printf("si"); break;
			case 5: printf("wu"); break;
			case 6: printf("liu"); break;
			case 7: printf("qi"); break;
			case 8: printf("ba"); break;
			case 9: printf("jiu"); break;
		}
		if ( count>1 ) {      //从数位判断是否输出空格
			printf(" ");
		}
		count --;
	} while ( count>0 );
	return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值