第四次作業


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

觀看mooc:

1.我觀看了3個視頻:數組,二維數組和數組運算,搜索,排序初步

2.我知道了

1)數組一旦創建,就不能更改大小

 2)a[0]可以存在但是無用,a[3][5]為3行5列的矩陣

3.對於素數的相關程序掌握不熟,還有對於素數的判斷

第十三次作業:7-2 輸出所有大於平均值的數

 

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

 

解題思路:

1.定義變量n,i,sum,average

2.輸入數字個數,定義數組a[n],n不再有效范圍輸出Invalid.

3.輸入數據,計算相加之和,和平均數

4.比平均數大的a[i]輸出,小於等於平均數不輸出

流程圖:

運行結果:

 

運行結果是一堆不相關的數字,然后我又返回去讀題,覺得可能是定義錯了,將a[i]從int改為long 

 

運行結果還是一堆不相關的數字,然后我發現我沒有輸出平均數,加上了輸出平均數

因為平均數輸出並沒有問題,所以我將斷點設在了if語句

結果c++並沒有進入if語句中直接就return 0,然后突然發現if語句實際上只會應用一次,要把它放在for循環中

 

輸出的值是對的,但是不應該輸出Invalid.然后我發現它的輸出條件錯誤,同學又告訴我輸入int a[n]不是a[i],我對這些地方進行了改正

 

結果正確,在PTA中也顯示正確。

第十四次作業:7-2 求最大值及其下標

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

解題思路:

1.定義變量n,max,index

2.輸入n后,定義a[n],max=a[0]

3.如果max<a[i],max=a[i],同時index=i依次循環

4.輸出max   index

流程圖:

運行結果:

 

運行結果是正確的,在PTA上卻報錯,然后我在循環處設置了斷點

 

 

調試也沒有出錯,然后我認真地查看了代碼,發現有兩行代碼的位置錯誤

 

 

答案正確

本周總結:

1.本周學習了數組,函數的相關計算,讓我更加充分地掌握了循環的應用

2.數組的循環條件和函數的定義對我來說有些困難,有時候無從下手;后來通過詢問同學,在網上查閱資料解決

折線圖:

 

 

 

 

 

 

 作業點評:  https://www.cnblogs.com/xiaofengqaq/p/10115956.html

      https://www.cnblogs.com/kaitbkleyue/p/10164062.html

                     https://www.cnblogs.com/0224ming/p/10164004.html

 


免責聲明!

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



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