实验代码:

#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. 前端开发面试题总结之——JAVASCRIPT(三)

    ___________________________________________________________________________________ 相关知识点 数据类型.运算.对象 ...

  2. [jQuery]判断checkbox是否选中的3种方法

    方法一: if ($("#checkbox-id")get(0).checked) { // do something } 方法二: if($('#checkbox-id').is ...

  3. flask 第三章 特殊装饰器 CBV Flask-Session WTForms

    1.flask中的特殊装饰器 前面我们讲过的装饰器函数中,用来登录验证,这次我们来介绍几个flask中的特殊装饰器 1). @app.before_request 具体的用途是: 在请求进入视图函数之 ...

  4. SpringBoot配置ActiveMQ

    1.添加依赖 <!-- activeMQ --> <dependency> <groupId>org.springframework.boot</groupI ...

  5. IDEA中项目编码格式设置

    自从换成IntelliJ IDEA 之后各种设置就成了问题,这不,在跟另一家公司做对接的时候,他们说我这边的http接口返回的都是乱码, 所有的接口我这边的都是访问过的,这个怎么会,我用360浏览器和 ...

  6. python笔记23-模块导入、安装

    模块:import 模块的实质就是把要导入模块里面的代码,从上到下执行一遍,找模块的顺序是,先从当前目录下找,找不到的话,再环境变量里面找 一:导入模块 1.查找环境变量地址: import sysp ...

  7. 零基础学习JavaSE(二)——基础语法

    二.Java 基础语法 2.1 Java 基础语法 java是一个面向对象的程序语言,及可把一切事物当做对象处理,而java的事物中最小的就是class (类),类中有方法,类可以创建对象,并且有一些 ...

  8. java web的MVC框架,el表达式,servlet,jstl表达式

    MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码 ...

  9. 自学python之路(day1)

    1. 下载和安装Pycharm文本编辑器,解释器Python3 2. 了解python2和python3的不同 如输出中文时,python2需要在代码前加 # -*- encoding:utf-8 - ...

  10. Python 语法2

    文档字符串,这个只能是用于紧跟函数第二行的内容. 输出文档说明的部分,代码格式是 函数名称.(dot)__(双下划线)doc__(双下划线) ///////////////////////////// ...