grant1944 发表于 2020-10-5 17:00:33

一道PAT的题目求解答

#include <stdio.h>
#define SIZE 100
int main(void)
{
    char num1;
    char *num2;
    int i,sum = 0,count;
    scanf("%s",num1);

    for(i= 0;num1 != '\0';i++)
    {
      sum += num1-'0';
    }
    int j = 0;
    do
    {
      count = sum%10;
      switch(count)
      {
            case 1:num2 = "yi ";break;
            case 2:num2 = "er ";break;
            case 3:num2 = "san ";break;
            case 4:num2 = "si ";break;
            case 5:num2 = "wu ";break;
            case 6:num2 = "liu ";break;
            case 7:num2 = "qi ";break;
            case 8:num2 = "ba ";break;
            case 9:num2 = "jiu ";break;
            case 0:num2 = "ling ";break;
      }
      j++;
      sum /= 10;
    } while (sum);
    for (int k = j-1;k >= 0;k--)
    {
      printf("%s",num2);
    }
    putchar('\b');

    return 0;
}


有没有大佬帮忙看一看我这个代码哪里有问题,一直通不过测试

芦蓬蓬的小叶子 发表于 2020-10-5 17:00:34

本帖最后由 芦蓬蓬的小叶子 于 2020-10-5 17:50 编辑

#include <stdio.h>
#define SIZE 100
int main(void)
{
    char num1;
    char *num2;
    int i,sum = 0,count;
    scanf("%s",num1);

    for(i= 0;num1 != '\0';i++)
    {
      sum += num1-'0';
    }
    int j = 0;
    do
    {
      count = sum%10;
      switch(count)
      {
            case 1:num2 = "yi";break;
            case 2:num2 = "er";break;
            case 3:num2 = "san";break;
            case 4:num2 = "si";break;
            case 5:num2 = "wu";break;
            case 6:num2 = "liu";break;
            case 7:num2 = "qi";break;
            case 8:num2 = "ba";break;
            case 9:num2 = "jiu";break;
            case 0:num2 = "ling";break;
      }
      j++;
      sum /= 10;
    } while (sum);
    for (int k = j-1;k >= 0;k--)
    {
      if(k != j-1) printf(" ");//第一个汉语拼音前不输出空格
      printf("%s",num2);
    }
    printf("\n");//换行

    return 0;
}

grant1944 发表于 2020-10-5 17:52:08

芦蓬蓬的小叶子 发表于 2020-10-5 17:46


感谢大佬

grant1944 发表于 2020-10-5 17:55:45

芦蓬蓬的小叶子 发表于 2020-10-5 17:00


这样改还是错的,不过还是谢谢回复,问题我解决了
页: [1]
查看完整版本: 一道PAT的题目求解答