当前位置: 首页 > news >正文

C语言博客作业--函数

一、PTA实验作业

题目1:6-4 400~499 中4出现的次数

1. 本题PTA提交列表

1233757-20171118180057640-1475150296.png

2. 设计思路

  • 第一步:自定义函数int fun(int x),函数名为 fun(),返回值为整型,输入的数值为整型;
  • 第二步:定义变量count表示4的个数,ge,shi,bai分别表示个位数,十位数,百位数;
  • 第三步:bai=x/100;shi=x/10%10;ge=x%10;
  • 第四步:如果bai=4,count++;如果shi=4,count++;如果ge=4,count++;
  • 第五步:返回结果count。

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

  • 碰到的问题:取出各个位置上的数时出错十位上的数字应该为shi=number/10%10;忘记将结果返回,导致答案错误;
    1233757-20171118180911796-370184285.png
    1233757-20171118181054531-798495334.png
  • 解决方法:用scanf语句自己输入一个数值,再用调试找出十位上的数值计算错误;至于返回值纯属疏忽,加上返回值后得到正确答案。

    题目2:6-7 使用函数输出指定范围内的完数

    1. 本题PTA提交列表

    1233757-20171118182237734-1926759402.png

    2. 设计思路

  • 第一步:自定义函数int factorsum( int number ),函数名factorsum( ),返回值为整型,输入数据number为整型;
  • 第二步:定义变量i,total=0;
  • 第三步:如果number==1,返回结果为1;否则进入循环for(i=1;i<number;i++);
  • 第四步:如果number%i==0,total=total+i;
  • 第五步:重复3,4,直到i=number,如果循环结束后total==number,返回total;
  • 第六步:自定义函数void PrintPN( int m, int n ),函数名为 PrintPN( ),函数无返回值,输入m,n为整型;
  • 第七步:定义变量i,j,r,sum=0,flag=0,
  • 第八步:如果m==1;printf("%d = %d\n",m,m),flag=1;
  • 第九步:否则进入循环for(i=m;i<=n;i++),如果factorsum(i)==i,sum=0; flag=1,并进入子循环for(j=1;j<i;j++),如果i%j==0,sum=sum+j;
  • 第十步:重复执行步骤九,直到条件不成立;
  • 第十一步:如果sum==i,printf("%d = ", i);并输出第一个因子1;进入循环for(r=2;r<i;r++),如果i%r==0,printf(" + %d",r);循环结束后输出一个换行符;
  • 第十二步:如果flag==0,输出No perfect number。

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

  • 一开始factorsum( )函数里的返回值弄错了,导致只能返回1或者0;
    1233757-20171118190220531-617576870.png
    1233757-20171118190245281-1482246374.png
  • 当i=28的时候,循环到了sum=28时,也就是sum=i时并没有跳出执行if(sum==i)的语句,后面经过调试,在每次大循环后没有将sum的值赋为0,导致下一次的计算错误,从而结果不对;
    1233757-20171118190816984-307682811.png
    1233757-20171118190836093-655976107.png
  • 当输入的数为空集时没有考虑,导致结果没有完全正确,后来加了一个flag变量,令flag初始值为0,如果输出数据可行,flag=1,;否则flag=0,当flag=0时就是表示空集的时候。
    1233757-20171118191324796-1988829542.png
    1233757-20171118191405937-368157973.png

    题目3:7-1 求组合数

    1. 本题PTA提交列表

    1233757-20171118191550859-281845394.png

    2. 设计思路

    主函数:

  • 第一步:定义整型变量m,n,浮点型变量C;
  • 第二步:输入m,n;
  • 第三步:C=fact(n)/(fact(m)*fact(n-m));
  • 第四步:输出C;

    自定义函数:

  • 第一步:定义函数double fact(int n),函数名fact(),返回值为double型,输入n为整型;
  • 第二步:定义浮点型变量i=1,result=1;
  • 第三步:进入循环for(i=1;i<=n;i++)
  • 第四步: result=result*i;
  • 第五步:重复步骤三、四;
  • 返回result值。

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

  • 一开始,定义函数里变量i和result定义成整型,导致结果部分正确;
  • 最后输出的结果不带小数,我原先定义C为double型,在输出时用了“%f”,导致答案错误,应该用“%.0f”;
    1233757-20171118193121546-1125409228.png

    二、同学代码结对互评

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

    我的:1233757-20171118202213734-9961077.png
    李梦冰的:1233757-20171118202351968-1886361972.png

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

  • 不同点:我是直接算出它个,十,百的数字,然后再判断它们是不是等于4;而梦冰的代码用了while循环,循环一次判断一次;
  • 优劣:她的代码更简洁,而且代码量少,可执行的数字比较广;而我的代码仅仅限制在三位数里面,代码量较大,效率比较低,比较适合脑子不太灵活的人。

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

    1233757-20171118194208734-2013028709.png

    四、本周学习总结

    1.你学会了什么?

  • C语言有三种基本数据类型为整型,实型,字符型。整型,包括short, int, long等;实型,即浮点型,包括float, double等;字符型,即char型,用来表示各种字符,与ascii码表一一对应;
  • 输入字符型数据时不要有空格或者其他隔开,因为回车等其他符号会被当成变量输入;
  • 自增自减符号,如i++,++i,i--,--i,注意无论是前缀还是后缀,i自增后的值就是i+1,自减后的值就是i-1,而表达式i++的值为原来的值,++i的值为自增后的值,自减的表达式类似也是如此;
  • 课堂派中有一题自增的做错了, 原因是忽略了每次自增,变量的值都会变,而不是原来的那个值;
  • 学会了用函数解决一些问题。

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

  • 对于运算符的优先级还不是太熟悉,对一些一大窜的表达式分析它的结果还很晕,经常出错;
  • 对一些有关字符型的编程题比较不会,比如上级考试的最后一题;
  • 对三种数据类型的应用还不是很了解,特别是short和long;
  • 函数题中,对那些逻辑性强的题目还是想不明白,算法不是很清楚。

    3.循环结构考试总结

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

  • 第三题做错了,原因在于,我将判断它是素数的if语句放在了循环的里面,导致每个数最后都会输出,而正确的做法是放在循环外面,因为,要将所有数都判断完才能确定它是不是素数;以下是我原来的代码和改正后的代码
    1233757-20171118200414859-2070933725.png
    1233757-20171118200436421-639556369.png
  • 第四题因为对二进制的数比较陌生,而且时间不够所以没做;
  • 第五题输出结果有错,部分正确,提示开头结尾多空格,到现在还没有改正过来,以下是我的代码
    1233757-20171118200712984-1831188244.png

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

  • 不满意,我的目标是及格,因为上次上机考试我不及格了,但是很遗憾我这次还是不及格,上次我给自己总结出的结论是花的时间太少,然后近阶段花的时间多了,效果还是不明显,所以我不得不反思是不是自己的学习方法有问题,所以我不再把这次的不及格定义为失利,而要定义为失败,因此我觉得应该寻找适合自己的学习方法,不要让自己花了和别人一样多的时间,却没有得到像别人一样的效果。

转载于:https://www.cnblogs.com/mayifang/p/7857848.html

相关文章:

  • php静态的关键字是,php 延迟静态绑定static关键字
  • hdu 5685 Problem A (逆元)
  • 浏览器运行不出来PHP,php脚本无法运行碎片浏览器
  • oracle创建永久账号,Oracle:用户创建、权限分配(默认账号)
  • Codeforces Round #369 (Div. 2)
  • oracle的下载地址,ORACLE 资源包下载地址
  • Ubuntu 16.04 安装NodeJs
  • oracle 集中度函数,提高品牌集中度为企业谋取更多利益
  • TreeMap按照key排序
  • oracle 分区表外键建索引,INFORMIX 表分区及索引
  • [loj#115] 无源汇有上下界可行流 网络流
  • php程序设计形成性手册,PHP动态网站设计(专,2020春)形成性考核_第6章 单元测试0...
  • linux命令行动态输出,Linux top实时显示process的动态命令详解
  • 我的cheatsheet
  • linux文件赋予用户权限,Linux 给用户赋予操作权限
  • create-react-app项目添加less配置
  • docker python 配置
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • spring security oauth2 password授权模式
  • text-decoration与color属性
  • 从重复到重用
  • 关于Flux,Vuex,Redux的思考
  • 嵌入式文件系统
  • 如何胜任知名企业的商业数据分析师?
  • 线上 python http server profile 实践
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 用mpvue开发微信小程序
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • Linux权限管理(week1_day5)--技术流ken
  • ​【已解决】npm install​卡主不动的情况
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • #大学#套接字
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • (16)Reactor的测试——响应式Spring的道法术器
  • (3)选择元素——(17)练习(Exercises)
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (九)信息融合方式简介
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)linux 命令大全
  • (转)Oracle存储过程编写经验和优化措施
  • (轉)JSON.stringify 语法实例讲解
  • ***原理与防范
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .Net Core和.Net Standard直观理解
  • .net 生成二级域名
  • .NET设计模式(8):适配器模式(Adapter Pattern)
  • /etc/fstab 只读无法修改的解决办法
  • [ HTML + CSS + Javascript ] 复盘尝试制作 2048 小游戏时遇到的问题
  • []串口通信 零星笔记
  • [2024最新教程]地表最强AGI:Claude 3注册账号/登录账号/访问方法,小白教程包教包会
  • [AIGC] 使用Curl进行网络请求的常见用法