PAT乙级:1002 写出这个数 (20分)

PAT乙级:1002 写出这个数 (20分)

在这里插入图片描述

#include<stdio.h>
#include<math.h>

int main(void)
{
    
    
     char a[1000];
     gets(a);

     int sum = 0;
     for(int i = 0;a[i] != '\0';i++)
     {
    
    
          sum += a[i] - 48;
     }

     int m;
     int len;
     len = (int)log10(sum) + 1;
	for(int j=1 ; j <= len; j++)
	{
    
    
		m = sum / pow(10,len-j);
		int w;
		w = m % 10;

		if(j != len)
		{
    
    
			switch(w)
			{
    
    
				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;
			}
		 }
		else
		{
    
    
			switch(w)
			{
    
    
				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;
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_46518461/article/details/107443976
今日推荐