C语言第六次作业
(一).改错题
输入源代码,编译,如图:
发现源代码中输出语句前无分号,改正编译,没有错误,运行如图:
发现结果不同,检查源代码,发现n定义为整型变量,应该改为浮点型,改正后,编译运行:
发现结果还是如图,发现源代码中s应该强制浮点型,并且,item绝对值不能大于eps的值,修改源代码如图:
运行结果如图:
结果正确,不知道为什么老师给的案例多了个6,试了很多遍。
(二).学习总结
1.语句while(1)和for(;;)是什么意思?,如何保证这种循环能正常执行?
答:while(1)是无限循环,1为真;for (表达式1; 表达式2; 表达式3)表达式1在for循环进入前执行;表达式2是for循环的执行条件,如果为空则表示无条件循环,只有break才会退出循环;
表达式3在每次循环结束后执行,
2.一般情况下,设计循环结构时,使用for、while、do while三种语句都可以,并且三种语句可以相互转换,但是,在某些特定情况下,我们应该优先选择某种语句来快速实现循环设计。
(1)循环次数已知
答:这种情况应该用for循环语句,PTA中循环结构(2)第三题可以用这种循环,因为是正整数,且不能对0或负数进行处理,所以,用否循环,若为0或负数则跳出循环,循环次数就得到控制。
(2)循环次数未知,但循环条件在进入循环时明确
答:这种情况应该用while循环,PTA中循环结构(2)第二题可以用这种循环,因为有次数限制,必须在规定的次数内操作,用此循环只要条件允许可以无限循环,得到答案
(3)循环次数未知,且循环条件在进入循环时未知,需要在循环体中明确
答:这种情况应该用do while循环,PTA中循环结构(2)第一题可以用这种循环,因为循环条件不明,所以必须规定且满足条件才能循环,否则,不能进行循环。
3.有如下问题:输入一批学生成绩,以-1作为结束,计算学生的平均成绩。
要求分别用for语句、while语句、do while语句和无限循环四种循环语句实现,并说明你认为哪种形式更合适?
答:(1)for循环:
(2)while循环:
(3)do wile循环:
(4)无限循环:
我认为,用while循环语句好用,相对其他循环语句来说较简单。
4.运行下面程序,输入1到10,结果分别是什么?为什么?
(1).
答:运行结果:
因为在输入2时就已经跳出了循环
(2).
答:运行结果:
因为输入的数和2取余等于零才能继续。
(三).实验总结
1. 求给定精度的简单交错序列部分和
(1)流程图
(2)源代码
#include <stdio.h>
#include <math.h>
int main()
{
double sum,m,q,eps;
int x;
x=1;
sum=0.0;
m=1.0;
scanf("%lf",&eps);
do
{
q=x/m;
m=m+3;
x=-x;
sum=sum+q;
if(fabs(q)<eps)
break;
}
while(fabs(q)>eps);
printf("sum = %.6f",sum);
}
(3)实验分析
问题1:没有按要求跳出循环
原因:没有规定最后一位的条件
解决办法:添加条件
(4)本题PTA提交列表
2.猜数字游戏
(1)流程图
(2)源代码
#include <stdio.h>
int main()
{
int i,n,a,N;
scanf("%d",&i);
scanf("%d",&N);
while(n<=N)
{
scanf("%d",&a);
n=n+1;
if(a<0)
{
printf("Game Over\n");
break;
}
if(i>a)
{
printf("Too small\n");
}
else if(i<a)
{
printf("Too big\n");
}
else
{
if(n==1)
{
printf("Bingo!\n");
break;
}
else if(n>1&&n<=3)
{
printf("Lucky You!\n");
break;
}
else if(n>3&&n<=N)
{
printf("Good Guess!\n");
break;
}
else
{
printf("Game Over\n");
break;
}
}
}
}
(3)实验分析
问题1:输出错误
原因:条件过多,漏掉,缺少条件
解决办法:仔细检查,并补全
(4)本题PTA提交列表
3.求奇数和
(1)流程图
(2)源代码
#include <stdio.h>
int main()
{
int i,x,sum,n;
sum=0;
for(i=1;i>0;i++)
{
scanf("%d",&x);
if(x>0)
{
if(x%2!=0)
{
n=x;
sum=sum+n;
}
}
if(x<=0)
break;
}
printf("%d",sum);
}
(3)实验分析
这题没问题
(4)本题PTA提交列表
(四).博客互评
风离你在 博客地址:http://www.cnblogs.com/GX201701-/p/7828562.html
李晓晓 博客地址:http://www.cnblogs.com/Reloaded/p/7825734.html
郭展旭 博客地址:http://www.cnblogs.com/1234569ss/p/7824423.html