第三次作业

第三次作业

作业要求 https://edu.cnblogs.com/campus/hljkj/CS201801/homework/2359

PTA第6次作业     7-3求平方与倒数序列的部分和

 

#include <stdio.h>
int main()
{
    double m,n;
    double sum,S=0,a;
    scanf("%lf %lf",&m,&n);
    
    for(;m<=n;m++){
        a = m*m+1/m;
        S = S + a;
        sum = S;
    }
    
    printf("sum = %.6f",sum);
    return 0;
}

解题思路:

第一步,定义m,n,sum,s,a,输入m,n的值;

第二步,判断m与n的大小关系,若m<=n,则执行循环;

第三步,m​^2+1/m+(m+1)​^2+1/(m+1)++n​^2+1/n,根据公式推出a=m*m+1/m,令累加之和S=s+a;

第四步,令sum=S,输出sum

流程图:

运行结果:

出现问题:

 

 结果与PTA中例子一致,但有测试点未过

 输入S时没有定义初始值为0

 

解决方法:

 

 输入S时将S定义初始值为0

PTA 第7次作业  7-1

 

#include <stdio.h>
#include <math.h>
int main()
{
    double a = 0,b=1,sum = 0,i,c=1;
    scanf("%lf",&a);
    for(i=1;i<=a;i++){
        sum = sum + c/b;
        b = b + 3;
        c=-c;
    }
    
    printf("sum = %.3lf",sum);
    return 0;
 } 

解题思路:

第一步,定义a=0,b=1,sum=0,i,c=1;

第二步,输入a

第三步,判断i<=a?;若是,执行sum = sum + c/b;b = b + 3;c=-c;

第四步,输出sum

流程图:

运行结果:

出现问题:

 与PTA中样例不一致,b在循环中出现问题

 


第一次循环执行程序时,b=1,与预期一致

 第二次执行循环时,b=-1,与预期不同

 

 

解决方法:

引入新变量c,令c=1,循环一次时c=-c;

PTA 第8次作业 7-1

 

#include <stdio.h>
int main()
{
    int a=0,b,c=0;
    scanf("%d",&a);
    
    for(;a>0;){
        c=a%2;
        if(c!=0&&a>0){
        b=b+a;
        }
        scanf("%d",&a);
    }    
    if(a<=0){
        printf("%d",b);
        return 0;
    }
    
    printf("%d",b);
    return 0;
 } 

流程图:

 

 运行结果:

 解题思路:

第一步,定义a,b,c

第二步,输入a,根据题意,判断a是否大于0,使其与样例一致,输入负数时打印结果

第三步,判断a是否为奇数,如果a是奇数,则执行sum=sum+a

第四步,输出sum

 

出现问题:

a可以一直输入,当a<0时,仍可以输入

问题原因:

解决方法:

for循环加入a>0条件判断

 

总结:

要注意for循环中的条件,注意for循环嵌套if语句

 

点评博客:

https://www.cnblogs.com/abcefg123/p/10022904.html

https://www.cnblogs.com/zcybky/p/10022913.html

https://www.cnblogs.com/moyoujiang/p/9939932.html

 

posted @ 2018-11-26 20:04  二零三  阅读(310)  评论(10编辑  收藏  举报