二级c语言程序设计bug,《C语言及程序设计》实践项目——发现Bug

返回:贺老师课程教学链接

【项目1-sin泰勒展式中的错误】

下面是sin函数的泰勒展式:

0024f285cf29ff111d60645dd22b8201.png(注:x取弧度值,而非角度值)

编写了double mysin(double x)用于求sin值,却“死”在了123°上。剧透一下,循环没有问题(当然问题会表现在循环中)。试着用调试工具找出问题出现在哪里,然后给出解决问题的方案。

#include#define pi 3.1415926

double mysin(double x);

double myabs(double x);

int main( )

{

double angle;

for(angle=0; angle<=180; angle++)

printf("sin(%.0f°) = %.3f\n", angle, mysin((angle/180)*pi));

return 0;

}

//下面定义mysin函数,求sin值

double mysin(double x)

{

double sum=x,x_pow=x,item;

int n=1,fact=1, sign=1; //定义变量时赋初值,已经将第一项考虑到累加和sum中

do

{

fact=fact*(n+1)*(n+2); //fact用于表示阶乘,在公式中作分母

x_pow*=x*x; //x_pow是分子中用于表示阶乘,在公式中作分母

sign=-sign; //确定即将要累加的这一项的符号

item =x_pow/fact*sign; //计算出要累加的项

sum+=item; //将该项累加上去

n+=2;

}while(myabs(item)>1e-5);

return sum;

}

//下面定义myabs函数

double myabs(double x)

{

return ((x>=0)?x:-x);

}提示:请进入到mysin中后,注意各变量的变化,看通项是否会收敛,从而使循环能够结束。

[ 参考解答]

【项目2-总是多一次?】

先阅读下面的程序。这样的结构,经常用于重复性工作。执行一次程序要完成的工作后,由操作人员选择,决定是否还来一遍。

#includevoid dosomething(int *p);

int main( )

{

char choice='y';

int n=0;

while(choice!='N' && choice!='n')

{

dosomething(&n);

printf("按 N 退出,其他键继续....");

scanf("%c", &choice); //用choice=getchar();也一样

}

return 0;

}

void dosomething(int *p) //完成特定的业务

{

*p+=1; //本例中传地址, *p即n

printf("第%d次完成业务!\n", *p);

}阅读程序,发现在不退出时,想继续一次业务,却……,如图:

通过单步的方式,找出问题的原因,并自行查找资料,找出解决的办法。

[ 参考解答]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/531614.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AC_Dream 1224 Robbers(贪心)

题意&#xff1a;n个抢劫犯分别抢到的金钱是k1, k2, k3,...&#xff0c;一共得到的金钱是m&#xff0c; 但是在分钱的时候是按照x1/y, x2/y, x3/y,....的比例进行分配的&#xff01;这样的话 一些抢劫犯就会觉得不公平&#xff0c;不公平度为|xi/y - ki/m|(浮点运算)&#xff0…

codeforces B. Strongly Connected City(dfs水过)

题意&#xff1a;有横向和纵向的街道&#xff0c;每个街道只有一个方向&#xff0c;垂直的街道相交会产生一个节点&#xff0c;这样每个节点都有两个方向&#xff0c; 问是否每一个节点都可以由其他的节点到达.... 思路&#xff1a;规律没有想到&#xff0c;直接爆搜&#xff0…

Uvaoj 11248 Frequency Hopping(Dinic求最小割)

题意&#xff1a;1到n节点&#xff08;节点之间有一定的容量&#xff09;&#xff0c;需要流过C的流量&#xff0c;问是否可以&#xff1f;如果可以输出possible&#xff0c; 否则如果可以扩大任意一条边的容量 可以达到目的&#xff0c;那么输出possible option&#xff1a;接…

UVAoj 11324 - The Largest Clique(tarjan + dp)

题意&#xff1a;给定一个有向图&#xff0c;寻找一个点数最大集合&#xff0c;使得这个集合中的任意两个点 u,v, 都有u->v 或者 v->u 或者u<>v 思路&#xff1a;首先将强连通分量通过tarjan算法求出来&#xff0c;然后进行缩点&#xff0c;也就是每一个缩点 所组成…

hdu 2014鞍山赛区 5073 Galaxy

题意&#xff1a;就是给你 n 个数&#xff0c;代表n个星球的位置&#xff0c;每一个星球的重量都为 1 &#xff01; 开始的时候每一个星球都绕着质心转动&#xff0c;那么质心的位置就是所有的星球的位置之和 / 星球的个数 现在让你移动 k 个星球到任意位置&#xff08;多个星球…

codeforces B. Friends and Presents(二分+容斥)

题意&#xff1a;从1....v这些数中找到c1个数不能被x整除&#xff0c;c2个数不能被y整除&#xff01; 并且这c1个数和这c2个数没有相同的&#xff01;给定c1, c2, x, y&#xff0c; 求最小的v的值&#xff01; 思路&#xff1a; 二分容斥&#xff0c;二分找到v的值&#xff0c;…

Android延伸布局到状态栏,Android 状态栏透明

前言&#xff1a;最近项目大量用到状态栏透明&#xff0c;网上也出现很多库可以直接拿来用&#xff0c;个人认为没有必要那么重引用到一个库(有木有同学和我有一样的想法)&#xff0c;所以研究了一番&#xff0c;在此做个记录加强记忆也便后期查阅&#xff0c;如果无意中有幸能…

华为HarmonyOS 鸿蒙,华为鸿蒙HarmonyOS2.0手机开发者Beta版正式发布

据悉&#xff0c;本次手机开发者Beta测试支持以下中国境内主制式手机及平板电脑。手机&#xff1a;全网通(5G双卡)P40 、 全网通版P40 Pro、Mate30、Mate30(5G) 、Mate30 Pro、Mate30 Pro(5G)&#xff0c;型号清单为ANA-AN00、ELS-AN00、TAS-AL00、TAS-AN00、LIO-AL00、LIO-AN0…

android oneshot自动播放bug,移动端常见bug汇总001

前言本文是摘录整理了移动端常见的一些bug以及解决方案&#xff0c;第一篇&#xff0c;后面还会有持续的文章更新整理。点击样式闪动Q: 当你点击一个链接或者通过Javascript定义的可点击元素的时候&#xff0c;它就会出现一个半透明的灰色背景。A:根本原因是-webkit-tap-highli…

int.class 与 Integer.class

TYPE 表示的引用类型所对应的基本类型的Class对象&#xff01; 转载于:https://www.cnblogs.com/hujunzheng/p/4055471.html

android uber启动动画,模仿Uber的启动画面(上)

启动画面(Splash Screen)——不但给开发者们提供了一个尽情发挥、创建有趣动画的机会&#xff0c;也填补了App启动时从终端慢吞吞地下载数据的时间。启动画面(动态的)对于App至关重要&#xff1a;它可以让用户不失兴趣地耐心等待应用完成加载。尽管现在的启动画面多种多样&…

智慧屏用鸿蒙的生态,紧随鸿蒙OS手机版 ,智慧屏为什么对鸿蒙生态这么重要?...

原标题&#xff1a;紧随鸿蒙OS手机版 &#xff0c;智慧屏为什么对鸿蒙生态这么重要&#xff1f;12 月 21 日&#xff0c;华为正式发布了两款智慧屏新品&#xff0c;智慧屏 S 系列和车载智慧屏&#xff0c;前者是智慧屏的新系列&#xff0c;后者则是新开辟的车机产品线。没有意外…

MySQL不能插入中文字符及中文字符乱码问题

MySQL的默认编码是Latin1&#xff0c;不支持中文&#xff0c;要支持中午需要把数据库的默认编码修改为gbk或者utf8。在安装后MySQL之后&#xff0c;它的配置文件不是很给力&#xff0c;不知道你们的是不是&#xff0c;反正我的是&#xff01; 开始插入中文字符的时候出现如下错…

codeforces C. Bits(数学题+或运算)

题意&#xff1a;给定一个区间&#xff0c;求区间中的一个数&#xff0c;这个数表示成二进制的时候&#xff0c;数字1的个数最多&#xff01; 如果有多个这样的数字&#xff0c;输出最小的那个&#xff01; 思路&#xff1a;对左区间的这个数lx的二进制 从右往左将0变成1&#…

r语言 发送邮件html,r语言读取数据的方法

R 对于基于 SQL 语言的关系型数据库有良好的支持&#xff0c;这些数据库既有商业数据库 Oracle、Microsoft SQL Server、IBM DB2 等&#xff0c;也包含在 GNUGeneral Public License (GPL) 下发布的 MySQL 等开源数据库。RMySQL 包中提供了到 MySQL 数据库的接口&#xff1b;RO…

eclipse开发web应用程序步骤(图解)

*运行环境&#xff08;也就是服务器的选择&#xff09; 环境搭建好之后开始编写web程序&#xff01;然后右键->Run as -> Run on Server! 转载于:https://www.cnblogs.com/hujunzheng/p/4083560.html

android 测光模式,Android Camera1中的对焦与测光

Android Camera1开发系列连载&#xff1a;Android Camera1详解Android Camera1显示预览的四种方式对焦模式在使用特定的对焦模式的时候&#xff0c;必须确保相机支持该模式&#xff0c;相机支持的对焦模式可以通过Parameters#getFocusMode接口来获取&#xff1a;常用的对焦模式…

html5做一个展示页面,基于HTML5的WebGL实现json和echarts图表展现在同一个界面

突然有个想法&#xff0c;如果能把一些用到不同的知识点放到同一个界面上&#xff0c;并且放到一个盒子里&#xff0c;这样我如果要看什么东西就可以很直接显示出来&#xff0c;而且这个盒子一定要能打开。我用HT实现了我的想法&#xff0c;代码一百多行&#xff0c;这么少的代…

Netbeans 中创建数据连接池和数据源步骤(及解决无法ping通问题)

1.启动glassfish服务器&#xff0c; 在浏览器的地址栏中输入 http://localhost:4848 2.首先建立JDBC Connection Pools&#xff1b; 3.new 一个Connectio Pools 4.对General Settings属性填写&#xff1b; 5.填写Datasource Classname&#xff1a;com.mysql.jdbc.jdbc2.optiona…

Netbeans不能正常启动glassfish或者部署失败不能运行的问题

错误信息&#xff1a;D:\临时文件\netbeans\WebTest\build\web中部署GlassFish Server 4, deploy, Connection refused: connect, falseD:\临时文件\netbeans\WebTest\nbproject\build-impl.xml:1048: 尚未部署该模块。有关详细信息, 请查看服务器日志。构建失败 (总时间: 7 秒…