第三次作業


第三次作業

作業要求 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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM