第三次作業


 

作業要求https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2360

 第七次作業  題目 7-3: 統計學生平均成績與及格人數

1.實驗代碼

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

2.解題思路:

(1).題目算法:

第一步:定義三個整型變量學生人數n , 及格人數count , i 和三個雙浮點型變量學生分數grade ,n個學生的分數總和 sum ,平均分數 average;

第二步:輸入學生人數 n;給sum賦值為0;給count賦值為0;

第三步:進入循環語句,i=1,輸入學生成績,不斷進行i+1和輸入學生成績的步驟的同時也不斷進行sum=sum+grade和average=sum/n的計算,直至 i>n;

第四步:同時如果輸入的成績大於或等於60,那么count就加一,循環也直至>n;

第五步:輸出平均成績average和及格人數coun

(2).流程圖:

3、調試過程遇到的問題及其解決方法:

首先我是這樣的代碼,於是出現了部分錯誤,如下:

 進行調試:

首先輸入0

 

 在進行到一下調試時就不能再進行下一步了;

於是我發現是因為在這里時n=0,無法進行操作,所以我將average=sum/n放在了循環中

錯誤原因:當沒有學生時,sum=0並且n=0。average沒有值,所以出現錯誤。

改正之后

 

 

 第8次作業   7-1 求奇數和

 

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

2.解題思路:

(1).題目算法:

第一步:定義兩個整型變量a,和奇數之和sum;

第二步:輸入一個值a,a>0;

第三步:進入循環語句,如果a%2沒有余數,則a是奇數,然后算奇數之和sum=sum+a,接着輸入a值,直至輸出的a<0;

第四步:輸出sum;

 (2).流程圖:

 

3、調試過程遇到的問題及其解決方法:

首先我是這樣的代碼,出現了大部分的錯誤

進行調試:

我發現在接下來的調試中我的第一次循環沒有a,所以不存在,也不能輸入

 

 

並且輸入2一直停留在scanf;

 

 

於是我在循環語句前面加了“scanf("%d",&a);”

 

改正之后

第10次作業    7-1 統計素數並求和 

#include <stdio.h>
int main(void)
{
  int m,n,i,sum,count,t,a;
  sum=0;
  count=0;
  scanf("%d %d",&m,&n);
  for(a=m;a<=n;a++){
    t=a-1;
    for(i=2;i<=t;i++){
      if(a%i==0)break;
    }
    if(i>t&&a!=1){
      count++;
      sum=sum+a;
    }
    }
  printf("%d %d\n",count,sum);
  return 0;
}

2.解題思路:

(1).題目算法:

第一步:定義區間7個整數型變量:最小值m,最大值n,素數的和sum,素數的個數count,i,t以及在區間(m,n)內的a;給sum賦值0;給count賦值0;

第二步:輸入m,n兩個值;

第三步:進入“for”循環,把m賦值給a,當a<=n時t=a-1,進入內循環i=2,i<=t,如果a%i的余數等於0的話跳出內循環,否則繼續內循環直至i>t;當i>t與a不等於1時,count加1,sum加a,a+1;直至a>n結束循環

第四步:輸出素數的個數並且素數的總和;

 (2).流程圖:

3、調試過程遇到的問題及其解決方法:

首先我是這樣的代碼:

出現了部分錯誤,看提示時m=n=素數時出錯,於是我進行了調試:

 

無法進行下去,我發現a還不可以等於1;這樣就能運行下去了;

 

 

 

 

 

 

 

 

總結:這幾周我們主要學習了for循環語句的嵌套和學了一些自定義函數的代碼,基本能解決簡單的幾個for語句內外循環嵌套的問題了。

   再是區分while與for不同的用法以及在不同的條件下對它們的不同使用。

難點:主要是for語句的嵌套以及子函數的寫法,比如子函數中的return是帶着什么回到主函數的,函數類型要與return變量保持一致,這些在

   寫代碼時都要特別的注意。

   for語句使用次數多了之后容易搞混淆。

措施:多讀代碼,搞清楚for語句中的內循環

   多使用自定義函數解題

點評:https://www.cnblogs.com/mayijing/p/10017399.html

   https://www.cnblogs.com/nansu/p/10035866.html

 

    https://www.cnblogs.com/DX552ZYM557/p/10028972.html


免責聲明!

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



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