• C语言博客作业--函数


    一、PTA实验作业

    题目1:使用函数输出一个整数的逆序数

    1. 本题PTA提交列表

    2. 设计思路

    1.定义函数 reverse( int number),类型为int
    2.定义整型变量n,inverse=1;inverse表示逆序数
    3.判断number的正负,如果number小于0,则n=-number;否则n=number
    4.inverse=inverse*10+n%10
    5.n=n/10;
    6.重复步骤4.5,直到 n=0
    7.再判断一次number的正负,如果number小于0的话,则返回-inverse;否则返回inverse
    8.结束算法

    3.本题调试过程碰到问题及PTA提交列表情况说明。

    最初始的代码没有考虑到要判断正负的问题,所以提交后提示说没有考虑负数和0的情况;后来改为以下的样子后,提交还是显示部分正确

    发现是调用的while循环语句的条件写错,理解错while是直到条件不符合时才输出

    题目2:水仙花数

    1. 本题PTA提交列表

    2. 设计思路

    调用函数 narcissistic( int number )
    1.定义整型变量int i,x,h,y,count,sum;
    2.sum=0;count=0;x=number;y=number;
    3.判断number的位数,x=x/10,count++,直到x=0
    4.h=y%10,sum=sum+h,y=y/10
    5.判断分解得到的数的n次方之和是否等于number,即重复步骤四
    6.如果sum=number,return 1;否则return 0
    调用函数void PrintN( int m, int n )
    1.定义整型变量j
    2.如果narcissistic(j)=1,输出m
    3.重复步骤2;
    4.结束算法

    3.本题调试过程碰到问题及PTA提交列表情况说明。

    开始的时候PrintN函数拼错,导致一直是编译错误

    后来在群里问了同学后改过来,但还是输出错误

    调试之后发现在输出时y的会变化,它会跟着y=y%10的值变化

    后来发现原来缺少y/10后的中间值,再定义一个整型变量h,h=y%10;就可以解决

    题目3:求组合数

    1. 本题PTA提交列表

    2. 设计思路

    1.定义两个整型变量m,n;定义浮点型变量result
    2.输入m,n
    3.调用fact(int n)求阶乘
    4.result=fact(n)/(fact(m)*fact(n-m))
    5.输出result

    3.本题调试过程碰到问题及PTA提交列表情况说明。

    开始时没有很好的理解调用函数的意思,写出初始代码如下


    开始时想的太复杂,没有考虑函数的意义,一直输不出来,后来仔细阅读课本有关函数的章节,和在同学的解释中才明白函数的定义,而后改成了这样


    答案输出0,没有定义函数里形参n,该类型应该为int型,还有输出的时候忘了解释是输出result,怪自己太粗心,犯这种低级错误

    二、同学代码结对互评

    1.同学互评照片。

    2.我的代码、互评同学代码截图


    3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。

    我和亚琴的代码最大的不同就是判断n的正负性,我是利用赋值,然后把他们的情况放在一起讨论,而亚琴的做法则是把他们分开讨论的,我觉得这样写的过于繁琐了;
    各自的优势的话,相对来说,我的代码比较简洁,而亚琴的代码相对来说比较容易理解,可读性应该更高一点,我在写代码时总是忘记写注释,而亚琴的代码即使比我的复杂,但是他的代码有很多的注释,让人可以很容易就可以弄懂。

    三、截图本周题目集的PTA最后排名。

    四、本周学习总结

    1.1 C语言哪些数据类型?

    C语言的数据类型有三种,分别是整型、字符型、实型

    1.2 字符型数据需要注意地方?

    字符型和字符型常量:
    每个字符型数据在内存中占用一个字节,用于存储它的ASSII码;
    整型变量和字符型变量的定义和值都可以相互交换;
    互换整型变量和字符型变量的定义和值时,整型数据的范围是有效的ASSII码;
    字符型常量指单个字符,用一对单引号及其所括起来的字符来表示;
    ‘a’和‘A’是不同的字符型常量,‘0’和 0是不同类型的常量,前者是字符型常量,而后者是整型变量;
    转义字符由反斜杠加上一个字符或数字组成

    1.3 自增自减运算符?

    自增运算符++和自减运算符--有以下两个功能:
    (1)使变量的增1或减1;例:若n是一个整型变量并已赋值,则++n和n++相当于n=n+1;--n和n--都相当于n=n-1;
    (2)取变量的值作为表达式的值;例:计算表达式++n和n++的值,则++n的运算顺序是:先执行n=n+1,再将n的值作为表达式++n的值;n++的运算顺序是:先将n的值作为表达式n++的值,再执行n=n+1。
    自增运算符和自减运算符的运算对象只能是变量,不能是常量或表达式

    1.4 运算符优先级?

    在四则运算中,遵循“先加减后乘除”的运算规则,在C 语言中也遵循运算符的优先级从高到低顺序计算;如果操作数两侧运算符的优先级相同,则按结合性(结合方向)决定计算顺序,若结合方向为“从左到右”,则操作数先于左面的运算符结合;若结合方向为“从右到左”,则操作数先于右面的运算符结合

    1.5 C语言哪些表达式?课堂派哪里做错,做错的请在这里分析原因?

    1.算术表达式、赋值表达式、关系表达式、逻辑表达式、条件表达式、逗号表达式。
    2·课堂派数据
    表达类型与表达式
    (1)第二题,x++的运算顺序是先把x作为表达式的值,再执行x++;误以为是把x=x++后再代入运算
    (2)8>6>3;运算符的优先级相同,从左到右开始计算,8>3为真,取1,1>3为假,
    (3)表达式(j=3,j++)的值,j++的运算顺序是先把j作为表达式的值,再执行j++,故结果为3

    2.本周的内容,你还不会什么?

    本周,函数的运用还不是很灵活,对于一些简单的题目可以写出代码,但是较为复杂的函数调用就不知道该怎么用函数去实现了;还有数据表达类型还不是很理解,对于二进制,八进制,十进制和十六进制的运算原理不理解

    3.循环结构考试总结(全部同学都要写)

    1.哪题做错了,怎么改?

    本周的上机考试几乎所有的题都有做错,准确的来说,应该是就看了第一题,在第一题卡住之后,后面的也就没有思路去看;以下是在考试结束后重打的前三题,最后的两题目前还没有弄懂
    7.1
    7.2
    7.4

    2.考试结果满意么,怎么改进?

    对考试的结果非常不满意,考试时完全忘了学的基础知识,连最简单的题都没有做出来;对基础的知识掌握的很不好,可能也是平时的时候对题目的思考不够多,过于依赖同学,以后认真思考每一道题,遇到问题自己独立思考,把更多的时间和精力放在c语言的学习。

    3.其他总结。

    这次的上机考试考得很差,对题目的分析不到位,还有遇到问题时,不会自己找出其中的错误,可能是基础的知识并没有掌握好,导致很多问题不会自己解决;还有自己的时间安排的很不科学,感觉上好像是说有花很多时间在学习上,但是事实上并没有多大的用,每天让自己活的很累,但是该学的还是没有学会;所以,计划好自己的时间,做好自己的事。

  • 相关阅读:
    Java中的 多线程编程
    Python中的字典详解
    Python中的数据类型
    Python中的字符串操作总结(Python3.6.1版本)
    R语言绘制沈阳地铁线路图
    HIVE中的order by操作
    Hive中order by,sort by,distribute by,cluster by的区别
    HDFS shell命令
    HDFS入门
    Bootstrap_Datatable Ajax请求两次问题的解决
  • 原文地址:https://www.cnblogs.com/2223ch/p/7840399.html
Copyright © 2020-2023  润新知