第四次作業


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

課前預習:

  學習了有關數組定義及運算的知識

  有關輸出最大值或最小值及其下標等還不熟練,字母間代換思路有時還不是很清晰

  

  

  

【7-2  輸出所有大於平均值的數】

#include <stdio.h>
int main(void)
{
  int i,n;
  double average,sum;
  scanf("%d",&n);
  int a[n];
  sum = 0;
  
  if(n < 1 || n > 10){
        printf("Invalid.");
    }
    
    else{
    for(i = 0;i < n;i++){
      scanf("%d",&a[i]);
      sum = sum + a[i];
    }
    average = sum / n;
    printf("%.2f",average);
  
    printf("\n");
    for(i = 0;i < n;i++){
      if(a[i] > average){
        printf("%d ",a[i]);
      }
    }
    }
  printf("\n");
  system("pause");
  return 0;
}

 解題思路:

  1. 定義平均數average 、數組之和sum 、元素個數n 、數組a[ i ] 、i

  2. 利用 if 語句,n<1或n>10時,輸出 “ Invalid. ”

  3. 利用 for 循環,求出數組之和,再求出平均值

  4. 利用 for 循環,將數組中的數與平均值比較,輸出大於平均值的數

流程圖:

  

調試過程:

  

  在檢查時發現 if 判斷句中多打了等號,導致出錯

  將 n<=1 || n>=10 改為 n<1 || n>10

  

  

  

  

  

【7-2  求最大值及其下標】

#include <stdio.h>
int main(void)
{
  int i,n;
  scanf("%d",&n);
  int f[n];
  int index = 0;
  
  for(i = 0;i < n;i++){
    scanf("%d",&f[i]);
  }
  
  int max = f[0];
  for(i = 0;i < n;i++){
    if(max < f[i]){
      max = f[i];
      index = i;
    }
  }
  printf("%d %d",max,index);
  
  system("pause");
  return 0;
}

解題思路:

  1. 定義元素個數 n 、下標 index 、數組 f [ n ] 、i

  2. 輸入f [ n ],定義最大值 max = f [ 0 ]

  3. 利用 for 循環,若 max = f [ i ],則替換 max 與下角標,

  4. 輸出最大值與下角標

流程圖:

  

調試過程:

  翻看課本時發現定義的 max = f [ 0 ]應寫在第一個 for 循環后面

  

  

  

  

  

 

個人總結:

  (1)本周進行了數組學習,定義引用、初始化、選擇法排序與冒泡法排序

  (2)打代碼時經常粗心,經常寫錯或寫串位置

      邏輯思維還需進一步提高

 

  

  

  

 

點評:

  (1)https://www.cnblogs.com/kaitbkleyue/p/10164062.html

  (2)https://www.cnblogs.com/zst1/p/10133338.html

  (3)https://www.cnblogs.com/nansu/p/10134717.html

 


免責聲明!

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



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