第七周作業


要求二

(三)題目7-3求交錯前N項和

1.實驗代碼

#include <stdio.h>
int main()
{
  int N,i;
  int flag=-1;
  double s=0;
  scanf("%d",&N);
  for (i=1;i<=N;i++)
  {
    flag=-flag;
    s=s+i/(2.0*i-1.0)*flag;
  }
  printf("%.3lf",s);
  return 0;
}

2.設計思路

(1)主要題目算法

逆推法   求1-2/3+3/5-4/7+...;

.——找出通項公式s=s+i/(2*i-1)乘以(-1)的n次冪;

——(-1)的n次冪不太會就相應換成變量flag,讓fiag=-flag循環與公式相乘——把公式放入循環語句中須在(i=1;i<=N;i++)的條件下;

————定義變量N,i,flag=1,浮點型變量s;

(2)流程圖

3.本題調試過程中遇到的問題及解決方法。

錯誤截圖

 

遇到的問題:不知道怎樣才能輸入‘+’ ‘—’連續的循環式子?(在之前我上網查找如何加入指數冪的形式結果還是不對)

解決方法:老師上課的ppt中有提到  在定義一個變量flag,讓flag=-flag放在循環語句中就可以實現。

4.本題pta提交列表

(五)統計學生平均成績及及格人數

1.實驗代碼

#include <stdio.h>
int main()
{
  int N,count,i,grade;
  double average=0;
  double s=0;
  scanf("%d\n",&N);
  for(i=1;i<=N;i++)
  {
    scanf("%d",&grade);
    s=s+grade;
    average=s/N;
    if (grade>=60){
      count++;}
  }
  printf("average = %.1lf\n",average);
  printf("count = %d",count);
}

2.設計思路

(1)主要題目算法

第一步:定義整型變量N,count,i,grade,浮點型變量average=0,s=;

第二步:(s=s+grade,average=s/N,)式子在i=1;i小於所輸入的N;i++的條件循環;

第三步:在循環框中加入條件(grade>=60)的時候count=count+1;

第四步:確定輸出條件以及小數點保留幾位;

(2)流程圖

3.本題調試過程中碰到的問題及解決辦法

錯誤截圖

遇到的問題:在devc++中編譯正確,而在pta中是部分正確。

解決方法:經過自己的反復觀察,發現其中要求grade>=60,而我輸入grade<60。

4.pta提交列表

要求三(額外作業)

一.  題目7-1  1-100求和

1.實驗代碼

#include <stdio.h>
int main()
{
  int i=1;
  int sum=0;
  while (i<=100){
     sum=sum+i;
     i=i+1;
  }
  printf("sum = %d",sum);
  return 0;
}

2.設計思路

(1)題目算法

第一步:定義變量sum為總和,i為循環語句中的次數;

第二步:根據題意鎖定公式s=s+i;

第三步:i++循環,輸出總和sum。

(2)流程圖

 

 

3 本題無錯誤

4.本題pta錯誤提交列表

二 題目 7-2求奇數分之一序列前N項和

1.實驗代碼

#include <stdio.h> 
int main()
{
    int n;
    int N=1;
    double sum=0;
    scanf("%d",&n);
    while (N<=n){
        sum=1.0/(2.0*N-1)+sum;
        N=N+1;
    }
    printf("sum = %.6f",sum);
    return 0;
}

2.設計思路

(1)題目算法

第一步:定義變量n(可人為的輸入值)sum(總和)N(循環變量);

第二步:在(n<=N)遵循 循環公式(sum=1/(2*N-1)+sum);

第三步:輸出sum並且保留小數點六位。

(2)流程圖

 

3.本題無提交錯誤

4本題pta提交列表

三.題目7-4找出最小值

1.實驗代碼

#include<stdio.h>
int main(void)
{
 int n,i,l,min;
 scanf("%d",&n);
 scanf("%d",&l);
 min=l;
 for(i=1;i<n;i++){
  scanf("%d",&l);
  if(min>l)
  min=l;
 } 
 printf("min = %d",min);
 return 0;
}

2.設計思路

(1)解題思路

第一步:定義變量n,i,l,min;

第二步:在i=1,i<n,i++;的條件下(如果min>l則min=l;

第三步:輸出min。

(2)流程圖

 

4.pta提交列表

 

 

 

要求四

git地址:https://git.coding.net/hezongyan321/text.git

coding截圖

要求五

個人總結

(1)本周學習內容和收獲:

1.while 循環;

2.do while循環;

3.for循環;

4.循環的嵌套;

(2)本周所學內容中那些是難點:

do while的循環至少要執行一次;

while循環如果一次不滿足條件就不執行;

要求六

我評價的作業

王佳樂

徐敬騎

胡俊鮮

 

折線圖

 

表格

 


免責聲明!

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



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