c语言第五次作业--函数
一、PTA实验作业
题目1.使用函数输出水仙花数
1.本题PTA提交列表
2.设计思路
- 1.第一个函数
- (1)定义整型常量x,a,count=0,item,sum。count用来计算整数的位数。令x=number。
- (2)x=x/10,count++,当x!=0时,执行前面的循环。
- (3)令a=number,sum=0。
- (4)执行item=a%10;a=a/10,sum+=pow(item,count);当a!=0时,循环前面的语句。
- (5)如果sum=number,返回1;否则返回0。
- 2第二个函数
- (1)定义整形函数i。
- (2)令i=m+1。
- (3)如果第一个函数返回值为1,输出i的值。
- (4)执行循环2,3直到i<n。
3.本题PTA碰到的问题及PTA提交列表情况说明。
在判断number位数的时候,没有设中间变量,直接用number除以10,导致number的值变了,后面判断是否number=sum的时候,number不是初始值。后来经过调试发现了错误。
题目2.求组合数
1.本题PTA提交列表
2.设计思路
- 1 .定义函数
- (1)定义一个求阶乘的函数fact(n)。
- (2)定义两个整形i,j、一个浮点型变量result。
- (3)令result=1,for(i=1;i<=n;i++)、循环result=result*i。
- (4)返回result的值。
- 2.主函数
- (1)定义一个整形变量m、n。
- (2)用户输入m、n的值。
- (3)调用定义的函数,输出fact(n)/fact(m)/fact(n-m)的值。
3.本题PTA碰到的问题及PTA提交列表情况说明。
之前对函数不太了解,以为本题要定义三个函数才能实现题中要求的fact(n)、fact(m)、fact(n-m)这三个变量,于是打了一大堆的代码,然后提交时提示格式错误,然后问同学才知道这个用一个函数就可以,经修改把定义的最后两个函数删了再提交就可以了。
题目3.使用函数判断完全平方数
1.本题PTA提交列表
2.设计思路
- (1)定义一个整形变量i。
- (2)如果n>0,for(i=1;i<=n;i++)循环:如果(n==pow(i,2)) return 1;并结束循环。
- (3)如果i>n,返回0。
- (4)如果n<0,返回0。
- (5)如果n=0,返回1。
3.本题PTA碰到的问题及PTA提交列表情况说明。
该题没有考虑到n=0的情况,忽略了0也是一个完全平方数。
二、同学代码结对互评
1.同学互评照片
2.我的代码、互评同学代码截图
我的代码
唐川代码
3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。
我们两个人的代码思路不一样,在该题中,我求了所给数的位数,再把个位上的数放到最高位;而唐川而是先取该数的绝对值,再直接通过循环运算把逆序数求出。我觉得两种方法都可以,我更喜欢我的代码。
三、截图本周题目集的PTA最后排名
四、本周学习总结
1.你学会了什么?
1.C语言哪些数据类型?
整形(短整形、长整形、无符号整数、有符号整数)、字符型、浮点型(单精度、双精度)。
2 字符型数据需要注意地方?
互换整形变量和字符型变量的定义和值时,整形数据的取值范围是有效的ASCII码;’a'和'A'是不同的字符型常量,'0'和0是不同类型的常量,前者是字符型常量,后者是整形常量。
3 自增自减运算符?
++、--,代表使变量的值增1或减1。比如++n和n++都相当于n=n+1;--n和n--都相当于n=n-1。
4 运算符优先级?
从高级到低级顺序计算。如果如果优先级相同,则按结合性决定计算顺序。
5 C语言哪些表达式?课堂派哪里做错,做错的请在这里分析原因?
算数表达式、赋值表达式、关系表达式、逻辑表达式、条件表达式、逗号表达式等。
课堂派
之前以为这些位运算符没有优先级,直接按顺序进行计算了。
6 其他内容?
在关系表达式中,if语句除了那种常规的写法外,学会了一种新的写法。如z=(a>b)?a:b,该语句可以表示如果a>b成立时,z=a,否则z=b。这个写法比之前学过的那个简洁很多。
2.本周的内容,你还不会什么?
对于本周的函数编程不太懂,PTA题目集中的7、8、9题写起来有点困难。
3.循环结构考试总结
1.哪题做错了,怎么改?
第四题输出素数有点粗心,题目的意思是输出小于m的数,而我输出的也包含了m,导致错位了一个数。还有最后两题写不出来,倒数第二题思路错了,所以浪费了很多时间在那题上的错的代码上调试。最后考试结束再写的时时候才理解了题目的意思。
2.考试结果满意么,怎么改进?
不满意,这次考试中时间不够,因为自己平时PTA作业也是写得很慢,注意力总是不集中,容易分心,所以一到上机考有在规定时间内很难完成。以后写PTA尽量给自己定个时间,争取提高自己的写题速度。
以后写题的时候要细心点,上机考的输出素数和二进制的前导的零这两题都因为没认真读题犯了错误。