首页 > 编程语言 > 详细

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

时间:2018-11-13 13:59:26      阅读:323      评论:0      收藏:0      [点我收藏+]

1.本章学习总结

1.1 思维导图

技术分享图片

1.2 本章学习体会及代码量学习体会

1.2.1 学习体会

本周学习了函数,学到了一种可以解决重复问题的方法,通过函数设计,大大简化了代码,增强了代码的可读性。学习函数可以来编写较多功能的代码。若我们不需要函数返回任何值可以用void类型的函数。初学函数时,并没有领略到函数的好处,在编写大作业时,就有感受了。调用函数比一次次编写相同的代码要方便许多,实现函数编写后,只要调用函数即可实现函数功能,函数的学习在今后的运用中也是个重要内容。也学习到了局部变量、全局变量、静态局部变量,大作业中正确个数的统计使用全局变量是一个明智的决定,解决了多个函数同时使用同一个变量的情况,使用我们不要仅仅拘泥于局部变量。

1.2.2 代码累计

技术分享图片

2.PTA总分

2.1截图PTA中函数题目集的排名得分

技术分享图片

2.2 我的总分

函数:145

3.PTA实验作业

3.1PTA题目1

使用函数输出指定范围内的Fibonacci数 
本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有Fibonacci数。所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列。

3.1.1 算法分析

int fib( int n )       //定义返回第n项Fibonacci数的函数
    if(n==1||n==2) then      //第一项和第二项都是1
    返回1
    else                 //以后的每一项都是前面两项的和
    return fib(n-1)+fib(n-2);

void PrintFN( int m, int n )        //定义输出Fibonacci数列的函数
  定义计算Fibonacci数的个数的count,标志第一项数的flag,Fibonacci数的i
    while(fib(i)<m)        //找到fib(i)大于m时的i值
        i++;
        end while
    while(fib(i)<=n)
        if(flag==0)    then    //第一项前面不输出空格
            printf("%d",fib(i));
                flag=1;
        else if(flag==1)     //除第一项外数字前面都输出空格
            printf(" %d",fib(i));
                end if
        count++;
        i++;
       end while
    if(count==0)
    printf("No Fibonacci number");

3.1.2 代码截图

技术分享图片

3.1.3 测试数据

技术分享图片

3.1.4 PTA提交列表及说明

技术分享图片

  • Q1:如何实现每一项都是前两项的和
  • A1:在fib函数中使用fib函数实现每一项是前两项的和
  • Q2:怎么找出大于m和小于n的临近值Fibonacci数
  • A2:使用两个while循环,第一个循环找出大于m的最小Fibonacci数,第二给循环找出小于n的最大Fibonacci数

4. 大作业

题目:实现小学四则运算。

4.1.函数关系图

技术分享图片

4.2.函数功能介绍

1.函数1

  • 代码截图
    技术分享图片
函数功能:调用三个不同等级的运算函数,计算用户答题的正确率

2.函数2

  • 代码截图
    技术分享图片
函数功能:先随机生成两个一位数,再随机生成加减乘除一步四种运算式,最后判断用户的回答和正确答案是否相等,输出对用户的祝贺语或提示用户回答错误给出正确答案,统计right,wrong的值

3.函数3

  • 代码截图
    技术分享图片
函数功能:先随机生成三个两位数,再随机生成加减乘除两步四种运算式,最后判断用户的回答和正确答案是否相等,输出对用户的祝贺语或提示用户回答错误给出正确答案,统计right,wrong的值

4.函数4

  • 代码截图
    技术分享图片
函数功能:先随机生成三个三位数,再随机生成加减乘除两步四种运算式,最后判断用户的回答和正确答案是否相等,输出对用户的祝贺语或提示用户回答错误给出正确答案,统计right,wrong的值

5.函数5

  • 代码截图
    技术分享图片
函数功能:用户答案,并判断输入的是不是非法字符,若是,提醒用户,让用户再次输入,直到不是非法字符

4.3运行结果截图

技术分享图片
技术分享图片

4.4调试碰到问题及解决办法

Q1:如何随机输出加减乘除四种运算式
A1:使用switch语句,通过随机产生1,2,3,4这四个数,来进行分支,随机输出加减乘除不同的运算式
Q2:计算正确率时,right个数和wrong个数统计出错,导致正确率错误
A2:因为三个函数都随时可能被调用,所以right,wrong的值应该沟通起来,所以想到了把right,wrong设为全局变量,供三个函数共同使用
Q3:三位数生成时有一位数的生成
A3:把a=rand()%1000改成a=100+rand()%900
Q4:非法字符的输入处理
A4:参考了同学的博客,使用scanf判断是否等于1,不等于1则非法字符,再使用getchar让用户再次输入

4.5大作业总结

1.我的代码实现了每次运算结束后都能返回菜单,而且用户可在一次一级运算后随意选择其他级运算,而不是只能继续一级运算
2.函数的使用还是比较单一,没有实现相同功能的代码一起组成一个函数,代码的拓展性不是很强
3.非法字符的处理是我在这次大作业中的最大收获,虽上课时了解到若输入非法字符,scanf的值不等于1,但实际操作起来还是不能实现该功能,在参考了同学博客后,受益良多

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

原文:https://www.cnblogs.com/x-m-66/p/9924119.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!