寒假作业 pta编程总结2

changanshisanzhao 2019-02-20 原文

寒假作业 pta编程总结2

实验代码:

#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语言还有些基础没弄明白,不会

运行结果截图:

发表于 2019-02-20 22:58 刘应军 阅读() 评论() 编辑 收藏

 

版权声明:本文为changanshisanzhao原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/changanshisanzhao/p/10409805.html

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

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

    寒假作业 pta编程总结3 实验代码: 某地老鼠成灾,现悬赏抓老鼠,每抓到一只奖励10元,于是开始跟老鼠斗智斗 […]...

随机推荐

  1. 麻省理工开设RPA课程,自动化时代离我们还有多远?

    7月20日,麻省理工学院-未来技术教育学院,麻省理工艺术、设计与科技大学(浦那)宣布引入RPA课程,同时推出R […]...

  2. MySQL一些中重要命令

    MySQL一些中重要命令 前言:   最近在面试的过程中,深感对MySQL一些重要命令的缺失。借着这个机会,补 […]...

  3. python

    Python提供了很多优秀的第三⽅的框架和库,⽐如全栈WEB框架Django,轻量级WEB框架Flask,异步框架FastApi,以及AsyncioIO等。python设计核心思想:一切皆对象。python是函数式编程语言,同时又是...

  4. Java中的==与equals()

    404...

  5. CSS选择器:伪类(图文详解)

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章。欢迎在GitHub上关注我,一起入门和进阶前端 […]...

  6. 论文笔记——N2N Learning: Network to Network Compression via Policy Gradient Reinforcement Learning

    论文地址:https://arxiv.org/abs/1709.06030 1. 论文思想 利用强化学习,对网 […]...

  7. MTK官方SDK包编译openwrt

      全过程需要联网,最好有梯子,编译方式有两种 安装依赖库: apt-get install g++ apt- […]...

  8. 解决Windows 7下Firefox下载入Localhost网站超慢办法

    本人喜欢Firefox在调试,默认的调试工具很方便,Firebug更是大名鼎鼎… 只是自从用了wi […]...

展开目录

目录导航