第二次作業


一:

作業要求鏈接:https://edu.cnblogs.com/campus/hljkj/Cprogramming_2018Autumn_CST2018_4/homework/2502

二:

函數6-2 找兩個數中最大者

1.實驗代碼

int max( int a, int b )
{
    int max;
    if(a>b)
    max=a;
    else 
    max=b;
    return max;
    
}

2.解題思路

 
         

(1)文字描述

第一步:首先定義a和b兩個變量
第二步;然后使用if語句判斷a大於b時候的情況
第三步:當a<b時max=b。
第四步:最后返回max;
(2)流程圖

(3)
本題調試過程碰到問題及解決辦法


遇到的問題是編譯錯誤;
使用斷點進行調試之后發現由於粗心大意在int max( int a, int b )后面多加了一個分號。
將分號刪除之后就解決了問題。
數組一:7-2 輸出數組元素

1.實驗代碼

#include<stdio.h>
int main()
{
    int i, n, cnt = 0;
    int a[10];
    scanf("%d", &n);
    for (i = 0; i < n; i++)
    {
        scanf("%d", &a[i]);
    }
    for (i = 0; i < n - 1; i++)
    {
        a[i] = a[i + 1] - a[i];
    }
    for (i = 0; i < n - 1; i++)
    {
        if (i == 0)
        {
            printf("%d", a[0]);
        }
        else if (cnt == 3)
        {
            printf("\n");
            printf("%d", a[i]);
            cnt = 0; 
        }
        else
        {
            printf(" %d", a[i]);
        }
        cnt++; 
    }
    return 0;
}

2.解題思路

(1)文字描述

第一步:定義i, n, cnt = 0
第二步:輸入n,然后設置for循環輸入數組
第三步:利用a[i] = a[i + 1] - a[i]計算后項減前項之差
第四步:每行三個元素的格式cnt == 3,
第五步:cnt循環;
(2)流程圖

(3)
本題調試過程碰到問題及解決辦法
 
         
 
         
遇到的問題是編譯錯誤;
使用斷點進行調試之后發現定義的a【N】出現了錯誤;
N不是實際的量,將N改為題目要求的10便迎刃而解了。

數組二:
7-4 選擇法排序
1.實驗代碼
 
         
#include <stdio.h>
int main()
{
    int i, j, min, temp, a[10];
    for(i = 0; i < 10; i++)
    {
        scanf("%d",&a[i]);
    }
    
    for(i = 0; i < 3;i++)
    {
        min=i;
        for(j = i+1; j <10; j++)
        {
            if(a[min] > a[j])
            {
                min=j;
            }
        }
       temp=a[i];
       a[i]=a[min];
       a[min]=temp;
            
    }
    for(i = 0; i < 10; i++)
    printf("%5d",a[i]);
    return 0;
}
 
         

2.解題思路

(1)文字描述

第一步:定義變量 i,n,讀入n個數  temp 臨時變量
第二步:
定義1個數組a,它有10個整型元素
第三步:利用for(i = 0; i < 3;i++)進行趟數控制
第四步:利用for(j = i+1; j <10; j++)起始交換位置
第五步:

利用temp=a[i];
a[i]=a[min];
a[min]=temp;進行交換;

第六步:輸出最后結果;

(2)流程圖

(3)本題調試過程碰到問題及解決辦法



遇到的問題是答案錯誤
再用Devc++進行調試時發現沒有編譯錯誤,但在輸出結果上發現5和6的位置沒有改變。
后來發現在for(i = 0; i <= 3;i++)這個位置上趟數的控制應該是<3,而不是<=3,
將問題糾正以后,5和6果然換了位置。
三:個人總結
(1)這幾周我學習了有關函數,數組的知識。我的收獲是了解了什么是數組,
為什么要使用數組,以及怎么去定義數組,
我還學到了引用數組元素,並且知道了二維數組的元素在內存中(按行存放)即在內存中線順序存放第一行的元素,
再存放第二行的元素。
(2)我覺得在何時使用數組這個地方是個難點。我用了多打代碼這個方法,
並且理解其內涵觀看網上視頻了解了何時使用數組,並去定義數組。
四,(1)互評和學習進度
趙豪
張學健
周文豪
(2)表格和折線圖
  代碼行數 代碼時間/h 博客字數 博客時間/h
第十二周 2700 15 0 0
第十三周 3200 18 1000 6
第十四周 1800 11 0 0
第十五周 2200 13 1100 5







 






 

 

 


免責聲明!

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



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