第七周作业
一、PTA作业
题目7-1 求1到100的和
1.实验代码
#include<stdio.h> int main() { int i=1 ,sum=0; while(i<=100){ sum=sum+i; i++; } printf("sum = %d",sum); }
2 设计思路
(1)文字描述
第一步:理解题意,可以用for语句或者是while语句。
第二步:定义整数型变量i(被加数),sum(总数)。
第三步:用while语句打出循环从一到一百的框架。
第四步:用printf函数输出%d 得到sum的结果。
(2)流程图
3.本题调试过程碰到问题及解决办法
错误提示的截图
先是用for语句做,后来找不到错误。改用while语句
问题及解决办法:for语句外头少了一个中括号。加上就解决了。
4.本题PTA提交列表
错误提示解释说明:这题用了两种语句进行解答,错误为少了括号,细节问题。
题目7-3 求交错序列前N项和
1.实验代码
#include<stdio.h> int main(){ int i,N,flag=1; double sum; scanf("%d",&N); for(i=1;i<=N;i++){ sum+=flag*i*1.0/(2*i-1); flag=-flag; } printf("%.3f",sum); return 0; }
2 设计思路
(1)文字描述
第一步:定义整数型变量i,N,flag,浮点函数sum。
第二步:用scanf函数读入N。
第三步:打出for循环的基本框架,flag于下一次循环时赋值为它的相反数。
第四步:输出sum(总数)的值。
(2)流程图
3.本题调试过程碰到问题及解决办法
错误提示的截图
第七行的flag没有定义,所以sum出问题了
问题及解决办法:本题一开始没发现错误,看了半天,最后翻译答案提示才知道,flag没有定义。问题已解决。
4.本题PTA提交列表
错误提示解释说明:错误为flag未定义导致sum无法计算。
题目7-5 统计学生平均成绩及及格人数
1.实验代码 (学校网络太好,代码插不进去)
#include<stdio.h>
int main()
{
int i,n,grade,count;
double sum,average;
scanf("%d",&n);
if(n!=0)
{
for(i=1;i<=n;i++)
{
scanf("%d",&grade);
sum=sum+grade;
if(grade>=60)
count++;
}
average=sum/n;
printf("average = %.1f\n",average);
printf("count = %d",count);
}
else if(n==0){
printf("average = %.1f\n",0.0);
printf("count = %d",0);
}
return 0;
}
2 设计思路
(1)文字描述
第一步:定义整数型变量 i,n,grade,count,浮点函数sum,average。
第二步:用scanf函数输入n。
第三步:运用if else if语句,在n!=0中执行for循环语句,成绩大于60的计入。
第四步:输出平均值以及及格人数。
(2)流程图
3.本题调试过程碰到问题及解决办法
错误提示的截图
粗心大意,错吧for打成if,没有对if语句进行分类,没有平均值的计算公式,总之,出大问题。
问题及解决办法:找不到错误在哪,后来对照错误提示翻译,才发现grade=0,t=0漏了,而且没有讨论N=0的情况。
4.本题PTA提交列表
错误提示解释说明:第七·第五行错误,第十四行错误,由于没有初始化导致的。
要求四
要求五
个人总结:本周复习了for循环语句以及学习了双重循环语句。对一些细节方面更加完善。