PTA刷题笔记(C语言) | 7-30 念数字 (15分)

开始刷题,感觉代码量和基础太渣了,导致数据结构不会,重头慢慢刷吧~
在这里插入图片描述


1、题目

在这里插入图片描述
输入样例:

-600

输出样例:

fu liu ling ling


2、代码

#include<stdio.h>
int main(){
    int num;
    scanf("%d",&num);
    if(num<0){
    	printf("fu ");
    	num=-num;
	}
	if(num==0){
		printf("ling");
	}
    int a[11];
    a[1]=num%10;
    int N=num,cnt=1;
	while(N){
		N=N/10;
		a[++cnt]=N%10;
	}
	int flag=0;
	int i;
	for(i=cnt-1;i>0;i--){
		if(!flag)
			flag=1;
		else
			printf(" ");
	    switch(a[i]){
	        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;
	    }
	}
    return 0;
}

在这里插入图片描述

3、讨论

我使用的方法是倒叙存储在一个数组里,负号先输出,零的情况单独讨论,这样就比较容易出结果了~

妙啊!!!
在这里插入图片描述
在这里插入图片描述

发布了253 篇原创文章 · 获赞 5195 · 访问量 87万+

猜你喜欢

转载自blog.csdn.net/TeFuirnever/article/details/105446726