• C语言Ⅰ博客作业09


    这个作业属于那个课程 C语言程序设计II
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/10029
    我在这个课程的目标是 熟练掌握C语言基础
    这个作业在哪个具体方面帮助我实现目标 掌握C语言知识,有效的完成PTA作业
    参考文献 C语言程序设计,百度

    1.PTA实验作业

    1.1 题目名1

    下面是一个完整的下三角九九口诀表:
    1*1=1   
    1*2=2   2*2=4   
    1*3=3   2*3=6   3*3=9   
    1*4=4   2*4=8   3*4=12  4*4=16  
    1*5=5   2*5=10  3*5=15  4*5=20  5*5=25  
    1*6=6   2*6=12  3*6=18  4*6=24  5*6=30  6*6=36  
    1*7=7   2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49  
    1*8=8   2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64  
    1*9=9   2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81  
    本题要求对任意给定的一位正整数N,输出从1*1到N*N的部分口诀表。
    输入格式:
    输入在一行中给出一个正整数N(1≤N≤9)。
    输出格式:
    输出下三角N*N部分口诀表,其中等号右边数字占4位、左对齐。
    输入样例:4
    输出样例:
    1*1=1   
    1*2=2   2*2=4   
    1*3=3   2*3=6   3*3=9   
    1*4=4   2*4=8   3*4=12  4*4=16 
    

    1.1.1数据处理

    数据表达:用了n,j,i三个变量,i,j的值是通过不断循环得到,n的值是输入的,都是整型变量。
    数据处理:
    伪代码:
    int i,j,n;                        /*定义三个整型变量,i,j,n*/
    scanf ("%d", &n);                 /*调用scanf()函数输入范围1-9内的任意一位正整数n*/
    for i←1 to n                      /*嵌套循环,外层循环执行n次,求累加和*/
    do for j←1 to i                   /*内层循环重复i次,算出结果*/
    do printf ("%d*%d←%-4d",j,i,j*i); /*其中“%-4d”表示等号右边数字占4位、左对齐*/
    printf ("
    ");                    /*输出下三角n*n部分口诀表*/
    

    1.1.2实验代码截图

    1.1.3 造测试数据

    输入数据 输出数据 说明
    4 与题目样例一样正确
    5 随机取1-9之间的数检验代码是否运行正确

    1.1.4 PTA提交列表及说明

    1.编译错误:j=1后面多了一个/,去掉后部分正确;
    2-3.部分正确:第十行中代码里面是“i,j,i*j”,其顺序不合题意,将i,j位置换了之后,答案正确;
    4.答案正确。
    

    1.2 题目2

    将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?
    输入格式:输入在一行中给出待换的零钱数额x∈(8,100)。
    输出格式:要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数 
    量,fen1:1分硬币数量, total:硬币总数量”。最后一行输出“count = 换法个数”。
    输入样例:13
    输出样例:
    fen5:2, fen2:1, fen1:1, total:4
    fen5:1, fen2:3, fen1:2, total:6
    fen5:1, fen2:2, fen1:4, total:7
    fen5:1, fen2:1, fen1:6, total:8
    count = 4
    

    1.2.1 数据处理

    数据表达:用了x,count,i,j,a个变量,i,j,a,count的值通过不断循环得出,x的值是输入的,都是整型变量。
    数据处理:
    伪代码:
    int x,count,i,j,a;                                                 /*定义五个整型变量,i,j,x,count,a*/
    count←0                                                            /*变量初始化*/
    scanf ("%d",&x);                                                   /*调用scanf()函数输入(8,100)的任意一位零钱数额x*/
    for i←x/5 downto 0                                                 /*循环嵌套,开始循环*/
    do for j←x/2 downto 
    do for a←x downto 0
    do IF 5*i + 2*j + a= x THEN                                        /*若符合该条件,则进行以下程序*/
    do  printf("fen5:%d, fen2:%d, fen1:%d, total:%d
    ",i,j,a,i+j+a); 
    count←count+1
    END IF
    printf("count ← %d",count);                                       
    

    1.2.2 实验代码截图

    1.2.3 造测试数据

    输入数据 输出数据 说明
    13 与题目样例一样正确
    20 随机取(8,100)之间的正整数检验代码是否运行正确
    30 随机取(8,100)之间的正整数检验代码是否运行正确

    1.2.4 PTA提交列表及说明

    1.编译错误,12行没有打换行符"
    ",加上后编译错误
    2.编译错误,发现等于符号用成了=,没有用==,改正后编译错误
    3.编译错误,for语句后面都没有打{},加上去后还是编译错误
    4.编译错误,把错误信息翻译了一下,说i,j,a没有声明,我不太懂是什么意思,就把它们都变量初始化,赋值为0,可是还是编译错误
    5.编译错误,感觉可能是空格的错误,改了一下,不过还是编译错误
    6.编译错误,感觉有时候for语句中的i,j,a可以不用int,就把它们删了,可是还是错的
    7.编译错误,重新把i,j,a加上去后,还有一些空格去掉后,答案错误
    8.答案错误,发现最后printf()里是"%d", count的格式不合题意,改成"count = %d",count后正确了
    9.答案正确。
    

    2.代码互评

    同学代码截图1 自己代码截图
    同学1和我的代码里面都用了循环嵌套,不过同学1在for循环里面用了if语句,其实我没太看懂!感觉这个其实麻烦一点!用一个“%-4d”就直接ok了。
    
    同学代码截图2 自己代码截图
       他只用了两个for语句,没有用if语句,感觉同学2写的代码比较麻烦,我看的不太懂,x=x-8不知道这个是什么意思,自己的代码比较明了一点!
    

    3.学习总结

    3.1 学习进度条

    周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
    第13周/11.22 两天 99 循环嵌套,break语句,continue语句 伪代码的正确示范?打代码时什么时候要空格,什么时候不要
    第12周/11.14 两天 107 whlie语句,do-whlie语句的使用方法,伪代码 不太清楚字符型的使用方法
    第11周/11.9 一天 137 switch语句 scanf语句在int后面和在for或其他语句后面有什么区别吗
    第10周/11.4 一天 112 if语句的嵌套,字符型,逻辑运算符 怎么活用已学知识点做PTA
    第9周/10.25 一天半 88 函数的定义,调用 “/=”是什么意思
    第8周/10.18 两天左右 84 循环结构,for语句 在Dev-C++里面正确的代码到PTA上是答案错误怎么解决
    第7周/10.8-10.12 两天左右 49 scanf()函数,if-else语句,常用的数学函数,关系运算符... PTA作业怎么能好好的做完!

    3.2 累积代码行和博客字数

    3.3 学习内容总结和感悟

    3.3.1 学习内容总结

    3.3.2 学习体会

    这周写代码学到了一些新知识,“%-4d”是数字占4位、左对齐的意思;“for i←1 to n do”是伪代码中For循环的一种,表示for(i=1;i⇐n;i++){};“for i←n 
    downto 1 do”表示for(i=n;i>=1;i–){};还有就是伪代码中“==”用“=”表示。可是对于伪代码我还是不太清楚,正确的格式到底是怎样的?我发现每周打代码 
    出现的错误都会有因为空格多或少错,不太理解为什么?上周我翻了翻以前写的博客,第一次博客作业里我的大一规划写着“每天花2小时编程,代码量达到每天15 
    行;每天记25个单词,为4级英语做准备”,现在好像没有做到过,哈哈哈,有点搞笑。希望自己认真一点吧!
  • 相关阅读:
    docker介绍和简单使用
    docker 安装
    流畅的python python 序列
    mysql设计表结构数据类型的选择
    Mysql存储引擎的选择
    Linux python3安装/shell脚本/if/循环/函数
    LINUX 文件/组/帮助/权限/文件压缩/管道
    Linux介绍和基本命令
    如何安装secureCRT8.1破解
    centos7 终端修改字体大小
  • 原文地址:https://www.cnblogs.com/dengjiamei/p/11905933.html
Copyright © 2020-2023  润新知