实验代码:

#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. python基础--字典

    Python基础--字典 字典的常用函数: dict.clear( )--->无任何返回值 说明: 清除字典内的所有的元素 语法: In [5]: dict.clear? Type: metho ...

  2. 【Java集合系列四】HashSet和LinkedHashSet解析

    2017-07-29 16:58:13 一.简介 1.Set概念 Set可以理解为集合,非常类似数据概念中的集合,集合三大特征:1.确定性:2.互异性:3.无序性,因此Set实现类也有类似的特征. 2 ...

  3. Tikhonov regularization 吉洪诺夫 正则化

    这个知识点很重要,但是,我不懂. 第一个问题:为什么要做正则化? In mathematics, statistics, and computer science, particularly in t ...

  4. [Leetcode 37]*数独游戏 Sudoku Solver 附解释

    [题目] 每一行.每一列.每个3*3的格子里只能出现一次1~9. [思路] 参考了思路,附加了解释. dfs遍历所有非空格子,n是已经填好的个数. 初始化条件.n=81,都填了,返回结束.对于已经填好 ...

  5. Hibernate原理及应用

    Hibernate工作原理及为什么要用? 原理:1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件2.由hibernate.cfg.x ...

  6. Jmeter性能结果分析

    1.压测结果指标 Samples:表示一共发出的请求数 Average:平均响应时间,默认情况下是单个Request的平均响应时间(ms) Error%:测试出现的错误请求数量百分比.若出现错误就要看 ...

  7. python常见函数以及模块调用

    1.常用函数区别 print: 在python3.0中print是函数,这意味着需要编写print(A )而不是print A str()和repr()的区别 >>>print st ...

  8. python模块之_正则 re_configparser_logging_hashlib

    正则表达式的内容放在最下面了 configparser 模块: #!/usr/bin/env python # coding:utf-8 import configparser # 专门用于操作配置文 ...

  9. Spark笔记

    Spark基础 第一节:什么是Spark?Spark的特点和结构 1.什么是Spark? Spark是一个针对大规模数据处理的快速通用引擎. 类似MapReduce,都进行数据的处理 2.Spark的 ...

  10. in条件后面有多个字段,in后面只能有一个字段 Operand should contain 1 column(s)

    今天在sql测试的时候发现了这个错误:Operand should contain 1 column(s). 原因是in条件后面有多个字段,in后面只能有一个字段.