实验代码:

#include<stdio.h>
#include<stdbool.h>
 
void toNUM(int n);
void toUNIT(int n);
 
int main()
{
    bool BeginC = false;
    bool Czero = false;
    int a[9] = {0};
    int n, i, j, tmp;
    scanf("%d", &n);
    for(i=100000000, j=0; i>0; i/=10)
    {
        a[j] = n/i;
        n %= i;
        j++;
    }
    for(i=0; i<j; i++)
    {
        //printf("a[%d]:%d", i, a[i]);
        if(a[i]>0)
        {
            BeginC = true;
        }
        if(BeginC)
        {
            if(a[i] != 0)
            {
                if(Czero) /**< 用来标记读xx万零xx的数 */
                {
                    if(i!=5) /**<如果遇到连续0,直到千位,前面可以不读0  */
                    {
                        printf("a");
                    }
                    Czero = false;
                }
                toNUM(a[i]);
                toUNIT(i);
            }
            if(a[i] == 0)
            {
                 /**< if(i == 4)   本来if语句我是写成这样的,用例全过,但是对于100000001这个数,输出是错的,因为输多了一个W,所以改成加上对万位的判断*/               
                if(i == 4 && ((a[1]!=0) || (a[2]!=0) || (a[3]!=0)|| (a[4]!=0))) /**< 考虑到1001001应该读作1千万1千零1,即使万位遇0还是要读出 */
                        toUNIT(i);
                Czero = true;
            }
 
        }
    }
    if(!BeginC)
    {
        printf("a"); /**< 如果数组一直为0,输出0 */
    }
    system("pause") ;
}
 
void toNUM(int n)
{
    switch(n)
    {
    case 0:
        printf("a");
        break;
    case 1:
        printf("b");
        break;
    case 2:
        printf("c");
        break;
    case 3:
        printf("d");
        break;
    case 4:
        printf("e");
        break;
    case 5:
        printf("f");
        break;
    case 6:
        printf("g");
        break;
    case 7:
        printf("h");
        break;
    case 8:
        printf("i");
        break;
    case 9:
        printf("j");
        break;
    default:
        printf("@ERROR@");
        break;
    }
}
void toUNIT(int n)
{
    switch(n)
    {
    case 0:
        printf("Y");
        break;
    case 1:
        printf("Q");
        break;
    case 2:
        printf("B");
        break;
    case 3:
        printf("S");
        break;
    case 4:
        printf("W");
        break;
    case 5:
        printf("Q");
        break;
    case 6:
        printf("B");
        break;
    case 7:
        printf("S");
        break;
    default:
        printf("");
        break;
    }
}

本题调试过程碰到问题及解决办法:

问题一:总是不小心漏代码,导致调试过程中总要回头,以致花太多时间

问题二;有些代码不会写比如:    default, Czero = false等,要去请教大佬,或者跟已完成的代码去比较才能完成

问题三:c语言还有些基础没弄明白,不会

运行结果截图:

寒假作业 pta编程总结2的更多相关文章

  1. 寒假作业 pta编程总结3

    实验代码: 某地老鼠成灾,现悬赏抓老鼠,每抓到一只奖励10元,于是开始跟老鼠斗智斗勇:每天在墙角可选择以下三个操作:放置一个带有一块奶酪的捕鼠夹(T),或者放置一块奶酪(C),或者什么也不放(X).捕 ...

  2. 2018秋寒假作业6- -PTA编程总结3

    PTA3抓老鼠啊~亏了还是赚了?思路: 首先定义变量并初始化为零,然后用if-else语句判断其关系和计算奶酪数量及盈利情况.

  3. 2018秋寒假作业4- -PTA编程总结1

    PTA1打印沙漏.打印沙漏中的“沙漏形状”,就是每行输出的奇数符号与各行符号中心对齐:相邻两行符号数相差2:符号数从大到小递减到1,再从小到大递增.在做的时候出了几次错,编译发先是几个小地方出错了.以 ...

  4. Q114寒假作业之割绳子

    割绳子 TimeLimit:1000MS  MemoryLimit:10000K 64-bit integer IO format:%lld Problem Description 已知有n条绳子,每 ...

  5. Luogu P2717 寒假作业(平衡树)

    P2717 寒假作业 题意 题目背景 \(zzs\)和\(zzy\)正在被寒假作业折磨,然而他们有答案可以抄啊. 题目描述 他们共有\(n\)项寒假作业.\(zzy\)给每项寒假作业都定义了一个疲劳值 ...

  6. 寒假作业---蓝桥杯---DFS

    题目描述 现在小学的数学题目也不是那么好玩的. 看看这个寒假作业: 每个方块代表1~13中的某一个数字,但不能重复. 比如: 6  + 7 = 13 9  - 8 = 1 3  * 4 = 12 10 ...

  7. java 寒假作业

    寒假作业 现在小学的数学题目也不是那么好玩的. 看看这个寒假作业: □ + □ = □ □ - □ = □ □ × □ = □ □ ÷ □ = □ (如果显示不出来,可以参见[图1.jpg]) 每个方 ...

  8. 2016蓝桥杯省赛C/C++A组第六题 寒假作业

    题意:现在小学的数学题目也不是那么好玩的. 看看这个寒假作业: □ + □ = □ □ - □ = □ □ × □ = □ □ ÷ □ = □ 每个方块代表1~13中的某一个数字,但不能重复. 比如: ...

  9. java实现第七届蓝桥杯寒假作业

    题目6.寒假作业 寒假作业 现在小学的数学题目也不是那么好玩的. 看看这个寒假作业: □ + □ = □ □ - □ = □ □ × □ = □ □ ÷ □ = □ (如果显示不出来,可以参见[图1. ...

随机推荐

  1. 聚类--K均值算法

    import numpy as np from sklearn.datasets import load_iris iris = load_iris() x = iris.data[:,1] y = ...

  2. git解决代码冲突

    1.当项目开发是几个人的时候,难免会出现代码冲突,使用git命令行解决冲突的方法如下: git checkout develop git pullgit checkout feature/新建会员功能 ...

  3. TypeError: format string

    先来看一段Python代码: class Negate: def __init__(self, val): self.val = -val def __repr__(self): return str ...

  4. 详解angular2组件中的变化检测机制(对比angular1的脏检测)

    组件和变化检测器 如你所知,Angular 2 应用程序是一颗组件树,而每个组件都有自己的变化检测器,这意味着应用程序也是一颗变化检测器树.顺便说一句,你可能会想.是由谁来生成变化检测器?这是个好问题 ...

  5. pycharm 输入法光标跟随

  6. input()和print()函数同时输入输出多个数据--python3

    使用input()和print()函数同时输入输出多个数据,需要空格分割输入信息 #!/usr/bin/python3#-*- conding:utf-8 -*- name, age, QQ = in ...

  7. 2Sum问题

    2Sum问题是3Sum和4Sum的基础,很多OJ都是以此为最简单的练手题的. 题目描述: 从一个数组里找出两个和为target的数. LeetCode上的描述: Given an array of i ...

  8. @Schedule注解中的Cron表达式读取properties的方法

    1.properties文件中增加配置项: datasync.cron=0 */10 * * * ? 2.定时任务类增加PropertySource注解: @PropertySource(" ...

  9. docker学习笔记(3)

    docker 搭建私有仓库 docker-registry是官方提供的工具,可以用于构建私有的镜像仓库.本文内容基于 docker-registry v2.x 版本. 安装运行 docker-regi ...

  10. Python 内编写类的各种技巧和方法

    Python 内编写类的各种技巧和方法 简介 有关 Python 内编写类的各种技巧和方法(构建和初始化.重载操作符.类描述.属性访问控制.自定义序列.反射机制.可调用对象.上下文管理.构建描述符对象 ...