C语言博客作业--函数

一、PTA实验作业。

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

1.本题PTA实验结果

2.设计思路

  • (1)在reverse(int number)函数内定义并赋值整型变量count=0,i,j,x,a,sum=0,number_copy=number

  • (2)当number!=0时,执行循环 count++;number=number/10;直到number=0时,退出循环

  • (3)将number_copy值赋给number。

  • (4)当i<=count时,执行循环,i=1,x=number%10;a=x;sum=sum+a;number=number/10; i++;直到i>count,退出循环;

  • (5)在(4)中循环嵌套一个循环当j<=count-i执行循环,j=1,a=a*10;j++;直到j>count-i时,跳出循环

  • (6)返回 sum。

3.本题调试过程碰到问题及解决办法

  • 碰到的问题:

    -  ![](http://images2017.cnblogs.com/blog/1232112/201711/1232112-20171116211734327-926858780.png)![](http://images2017.cnblogs.com/blog/1232112/201711/1232112-20171116211747687-33059471.png)本应该一次循环后number=1234,而其又变成了12340.导致最后的答案变成了0;
    
    - ![](http://images2017.cnblogs.com/blog/1232112/201711/1232112-20171116212310656-1663506661.png)![](http://images2017.cnblogs.com/blog/1232112/201711/1232112-20171116212321249-915934256.png)调试到最后不管输入什么,都显示的为0;因为当上一个循环结束时,number=0,没有做任何处理直接进入下一个循环,使值为0
    
  • 解决办法:将number=number_copy去掉,这样就能得到去除个位的值,使答案正确;重新定义一个变量来装改变前的number值。再在上一个循环结束后,将原来的值重新赋给number。

题目2:6-6 使用函数输出水仙花数

1.本题PTA实验结果

2.设计思路

  • (1)执行函数narcissistic( int number );定义整型变量 sum=0,i,x,a;

  • (2)将number的值赋给a

  • (3)如果number=10000,返回0值

  • (4)如果number/1000>=1,执行循环,当i<=4时执行'x=number%10;sum=sum+xxx*x;number=number/10;i++';直到i>4时退出循环。

  • (5)否则,执行循环,当i<=4时执行'x=number%10;sum=sum+xxx;number=number/10;i++;'直到i>4时退出循环。

  • (6)如果sum=a,返回1.否则返回0。

  • (7)执行函数PrintN( int m, int n );

  • (8)定义整型变量sum,j,x,i,a。

  • (9)当j=m+1,j<n时,执行循环,a=j,sum=0;

  • (10)如果a=10000,不进行下面操作直接进行下一次循环;

  • (11)如果a/1000>=1,执行循环,当i<=4时执行'x=a%10;sum=sum+xxx*x;a=a/10;i++;'直到i>4时退出循环。

  • (12)否则,执行循环,当i<=4时执行'x=a%10;sum=sum+xxx;a=a/10;i++;'
    直到i>4时退出循环。

  • (13)如果sum=j,则输出j的值。

3.本题调试过程碰到问题及解决办法

  • 碰到的问题:

    - ![](http://images2017.cnblogs.com/blog/1232112/201711/1232112-20171116213434952-733291143.png)![](http://images2017.cnblogs.com/blog/1232112/201711/1232112-20171116213350265-1041594404.png)![](http://images2017.cnblogs.com/blog/1232112/201711/1232112-20171116213403109-697165257.png)本应该由2开始,他直接将j=359,并跳出循环
    
    - ![](http://images2017.cnblogs.com/blog/1232112/201711/1232112-20171116213739812-2020173968.png)![](http://images2017.cnblogs.com/blog/1232112/201711/1232112-20171116214003031-1938488293.png)![](http://images2017.cnblogs.com/blog/1232112/201711/1232112-20171116214010484-1681267433.png)最后答案没有,并且当j=370,sum不等于已经定义好的370,而只有25,可知x^3
    

无法用于有关计算

  • 解决办法:将j=359改为j=m+1;将x^3改为‘xxx’即可。

题目3:7-1 求组合数

1.本题PTA实验结果

2.设计思路

  • (1)执行主函数int main(void)。定义两个整型变量m,n.浮点型变量result。

  • (2)输入两个变量的值m,n。

  • (3)计算‘result=fact(n)1.0/(fact(m)fact(n-m));’

  • (4)输出printf("result = %.0f",result);保留整数。

  • (5)在主函数的基础上执行fact(int n)函数;

  • (6)在自定义函数内定义整型变量i,浮点型变量result_fact,并赋值为1;

  • (7)当i=1,i<=n时执行循环,计算'result_fact=result_fact*i',直到i>n时结束循环。

-(8)返回result_fact值

3.本题调试过程碰到问题及解决办法

  • 碰到的问题:

    • ![]上面写的是答案错误,但我带入了多个值,都是正确的,据我估计应该是某个值带入,导致整型与浮点型有了差异。
  • 解决办法:将result_fact定义为浮点变量

二、同学代码结对互评(2分)

1.互评同学名称。

  • 崔志彬

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

  • 6-5

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

  • 6.5

    • 变量不同;我用的是先得出位数,再利用位数算出逆序数,他是用输出‘个位数*10’+个位然后与之类似的循环;

    • 他的代码较为简单,只用了一次循环结构,并且添加了注释;我的相对于他的比较复杂,没有用什么技巧性的方法,比较适合像我这样的一类人

    • 他的简便的方法值得我学习,技巧性的思维方式也值得我学习,也要学会使用注释使代码更加的易懂。

三、截图本周题目集的PTA提交列表及最后排名。

1.PTA提交列表










2.PTA排名

四、本周学习总结

1.你学会了什么?

1.1 C语言哪些数据类型?

整型(int,long[int],short[int],unsigned[int]等),字符型(char),浮点型(float和double)

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

  • (1)scanf输入时要用%c。

  • (2)赋值时要加' '。

1.3 自增自减运算符?

-- 自减,++ 自增。++n是先赋值在运算,n++是先运算在赋值。

1.4 运算符优先级?

!—— ++,--,+,-,(单目)—— / %——+ - ——< ,<=,>,>=——== ,!=——&&,||——?:——=,+=,-=,*=,/=,%=——,由高到低,由左到右执行

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

  • 赋值表达式,关系表达式,关系表达式,逻辑表达式,条件表达式

  • 有关整型变量的相除,如课堂派第六题,x=10/4,我把他当做平常运算格式计算了,正好x为浮点型,所以写错了。

1.6 其他内容?

函数在编程方面的运用,可以使算式变得简便。

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

数据结构中有关表达式运算顺序的地方不是很懂。还有就是两种自定义函数的结合运用还是不怎么懂,主要是下一个自定义函数的一部分可以用上一个自定义函数表示,但自己不会表示;还有就是有关字符变量和数字变量的转换还是不怎么会。有时候还会弄混淆。

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

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

7-5 单词长度。改为就对了。因为之前的代码当只输入一个单词时会输出1“ ”这样的而不是1。

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

不满意,认真完成老师布置的作业和pta,做到每道题目都自己做,自己能够解决。

3.其他总结。

有些题目知道什么地方错了,但dev调试不出来,格式错误不管怎么输,答案都跟例子一样。看不出来。

posted @ 2017-11-17 13:20  烦呢,还要起名字  阅读(329)  评论(1编辑  收藏  举报