第十四、十五周作業


要求二

題目 14、1--7-1 數組中偶數的和

1、實驗代碼

#include <stdio.h>
int main(void){
  int i,sum=0;
  int a[10];
  for(i=0;i<10;i++){
    scanf("%d",&a[i]);
  }
  for(i=0;i<10;i++){
    if(a[i]%2==0)
      sum=sum+a[i];
    }
    printf("s=%d",sum);
return 0;
}

 

2、設計思路

(1)主要描述

第一步:審題,帶着題干給的輸入輸出格式去思考,打出大體框架。

第二步:定義一個大的數組空間a[10],在定義循環需要的整型變量i,sum(和)。

第三步:使用for循環將數組中的數據輸入進去,如果滿足a[i]%2==0,則證明輸入的這個數據是偶數,滿足后在循環中進行加和。

第四步:循環到數據空間到頭時候,結束,輸出數組中偶數的和sum。

(2)流程圖

 

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

 提示截圖:

解決:此題沒有什么問題,可以用多種方式寫出來、

題目 14、2--7-1求最大值及其下標

1、實驗代碼

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

 

2、設計思路

(1)主要描述

第一步:審題,帶着題干給的輸入輸出格式去思考,打出大體框架。

第二步:定義變量i,index(下標標示),max(最大值),定義數組a[n]。

第三步:使用for循環輸入數據,讓index=0相當於保證輸入的數據從第一個開始。

第四步:再次使用for循環,用if語句判斷出符合要求的數組中的數據,如果a[i]>a[index],那么就進行交換,保證max一直最大。

第五步:最后輸出最大值及其下標。

(2)流程圖

 

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

錯誤提示截圖:

解決:那個max沒有給出定義,還有沒有初始輸入,要先輸入數據的。我也在百度上看了這道題的代碼,又經過問同學解決的。

題目 15、1--7-2方陣左下角元素的和

1、實驗代碼

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

 

2、設計思路

(1)主要描述

第一步:審題,帶着題干給的輸入輸出格式去思考,打出大體框架。

第二步:定義變量i,j,sum,同時定義一個數組a[4][4]就相當於申請這么大一個空間。

第三步:定位出j<=i的位置,使用for的多層循環輸入符合要求的數據,進行循環累加。

第四步:最后輸出方陣左下角元素的和sum。

(2)流程圖

 

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

錯誤提示截圖:

 

解決:雖然在Dec++上沒有錯誤,但在PTA上是不正確的,此題由於做PTA時忘記了截圖。在c++上沒有錯誤說明程序寫的沒有錯誤,但在PTA上由於和題意不符,所以會編譯錯誤,經過檢查發現如上圈出來的問題,題意要求輸入4行4列的方陣,每行第一個數前沒有空格,每行的每個數之間各有一個空格。但是我的並沒有空,還有就是第二個圈點出來的那個,輸出不能放入循環體里。

題目14--7-4 fibonacci數列

1、實驗代碼

#include <stdio.h>
int main(void){
  int i;
  int fib[12]={1,1};
  printf("%6d",fib[0]);
  printf("%6d",fib[1]);
  for(i=2;i<12;i++){
      fib[i]=fib[i-1] + fib[i-2];
      printf("%6d",fib[i]);
    if((i+1)%3 == 0){
  printf("%c",'\n');
  }
  }
return 0;
}

 

2、設計思路

(1)主要描述

第一步:審題,帶着題干給的輸入輸出格式去思考,打出大體框架。

第二步:定義一個數組為十二的空間,直接給出第一個數據,第二個數據的值,定義整型變量i。

第三步:根據要求,沒有輸入,利用for循環和if進行判斷。

第四步:輸出 使用%6d的格式輸出;注意輸出最后一個數字后,有一個換行。所以用%6d輸出結果。

(2)流程圖

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

提示截圖:

解決:這個題目老師上課講過的,通過自己敲及看老師的ppt,思考解決出來的。

 提交列表:

要求三

上傳截圖:

我的coding地址:http://coding.net/u/linmeng123

要求四

個人總結

(1)我學習到的內容:本周主要學習了數組,先學習了數組的定義,數組元素的引用,數組的初始化,及一些對應的程序。我們從一維數組開始學起,逐漸深入學習了二維數組,還學習了選擇法排序及重要的冒泡排序,及一些數組中的數逆序存放,記錄下標一些程序。

我的收獲:讓我覺得用數組,比以往老式寫代碼方便多了,用起來很好,本周我最大大收獲就是學習了數組,及其對它的應用,使得我對編程進一步產生了興趣。本周我覺得收獲最大的就是上一次課,老師帶着一邊敲,一邊提問,讓同學來說,並一步一步來改,我聽懂了好多,感覺平時光聽效率高很多,希望以后多一些這種方式上課。

(2)我認為的難點:選擇法和冒泡法不太理解,有點復雜,可能是我沒有真正理解,如果理解可能一環套一環很簡單吧。

不明白的:復雜一點的我總是蒙,可能我內心存在對復雜程序的恐懼,但每一次PTA作業我都自己努力去做,但每次都是有錯誤,都是找會的同學,幫我改半天。不明白的就是帶有復雜的,比如冒泡和選擇排序。別的看看還能扣明白。

要求五

互評和學習進度

1、點評的同學:

孫娜:http://www.cnblogs.com/sun-na-/

張樂;http://www.cnblogs.com/1999-09-22/

汪志恆:http://www.cnblogs.com/wangzhiheng/

截圖

2、表格

時間 代碼行數 代碼時間 博客字數 博客時間 知識點
11.10 30 15 0 0 for
11.15 35 22 150 15 for,交換,記錄下標
11.17 46 35 260 45 選擇,冒泡排序
11.19 50 60 300 90 矩陣,循環移動

 

折線圖

 


免責聲明!

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



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