赴加计算机17-2 景远博 第二次作业
一、例程调试(20分)
调试下面1个例程,各位同学调试用自己的学号模4加1序号的题,写清错误提示(截小图)及修改内容(10分); 说明:有可能没有错误提示,但未达到预计功能。,题目来源为“ C语言程序设计实验与习题指导(第3版)调试源程序”中error04_1~4;利用Autoflowchart软件查看程序的流程图,将流程图导成word格式,加入必要的文字说明,并说明该程序的功能(10分)
#include<stdio.h>
int main(void)
{
int flag,n;
double eps,item,s;
printf("Input eps: ");
scanf("%lf",&eps);
flag = 1;
s = 0;
n = 1;
do{
item = 1/ n;
s = s + flag * item;
flag = -flag;
n = n + 3;
}while( item < eps);
printf( "s = %f\n",s);
return 0;
}
达不到预期功能,目的是求给定精度的简单交错序列部分和,将while(item<eps)改为while(item>eps).
四、 循环知识点整理与自测(直接写能或不能)(每一项均写一个例程,并附运行结果截图) (30分)
4.1能够完成已知条件但未知次数的循环程序设计; 1+1/2+1/3+…,直到某项小于0.0001。
能
#include <stdio.h>
int main(void)
{
int i;
double sum=0;
for (i = 1; 1.0/i > 0.0001; i++) {
sum = sum + 1.0/i;
}
printf("sum = %f\n", sum);
return 0;
}
4.2 能够完成已知次数的循环程序编写 如1+2+…+150;
#include <stdio.h>
int main (void)
{
int num,sum,i,flag;
flag=1;
i=0;
sum=0;
scanf("%d",&num);
for (i = 0; i < num; i++)
{
sum+=flag;
flag+=1;
}
printf("%d",sum);
return 0;
}
4.3能够完成读入若干数据,对数据做数理与简单统计;如求极值,简单的选票统计等
#include<stdio.h>
int main(void)
{
int a[1000],b[1000]={0},n,i,j,max,f=1,flag=1;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(i=0;i<n;i++){
for(j=0;j<i;j++){
if(a[j]==a[i]){b[j]++;break;f=0;}
}
if(f) b[i]++;
}
max=b[0];
for(i=0;i<n;i++){
if(max<b[i]){max=b[i];j=i;flag=0;}
}
if(flag) j=0;
printf("%d %d\n",a[j],max);
return 0;
五、持续改进学习方法、措施落实情况(10分)
5.1结合第1次博客作业,针对自己所提出的各种学习中遇到的困难解决方法,总结一下,自己是否落实之前的计划。没有落实的原因是什么;
没有,原因是自己的懒惰和拖延,不能及时的完成指定的计划。
5.2记录近两周的每天编码时间,(实事求事)
每天几乎只有做PTA的时候才打一会,没有连续的进行,只是偶尔打十多分钟,没有太具体。
5.3下一步的学习改进措施与计划(时间为两周) 要求写明具体可行的措施及可验证的检测方法。
把PTA的作业重做一遍
把老师留的往期习题重做一下