第二次作業


作業要求: https://edu.cnblogs.com/campus/hljkj/Cprogramming_2018Autumn_CST2018_3/homework/2503

函數:找出兩個數中最大值;

實驗代碼:

#include <stdio.h>
int max( int a, int b ){
    int max;
    if(a>b)
    max=a;
    else
    max=b; 
}
int main()
{    
    int a, b;

    scanf("%d %d", &a, &b);
    printf("max = %d\n", max(a, b));

    return 0;
}

解題思路:

(1)

第一步:定義函數max,定義變量max,判斷a、b的大小關系,將大的值賦給max;

第二步:定義主函數;

第三步:定義a、b;

第四步:輸入a、b;

第五步:輸出max;

(2)

調試中所遇問題及解決方法:

1、定義函數后加分號多余;(delete“;”)

2、max函數中返回值0,導致所得數據錯誤;(delete“return 0;”)

數組1:交換最大值和最小值;

實驗代碼:

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

解題思路:

(1)

第一步:定義數組、變量min、max及相應變量n、i;

第二步:輸入數組中的元素個數輸入數組中元素;

第三步:將數組中第一個元素的值賦給max與min,

第四步:依次將數組中的元素與min相比,將最小值賦給min;

第五步:將最小值與數組中第一個元素互換;

第六步:依次將數組中元素與max相比,將最大值賦給max;

第七步:將最大值與數組中最后一個元素互換;

第八步:輸出數組元素;

(2)

編程中所遇問題及解決方法:

1、將數組第一個元素誤以為是a[1];(數組中第一個元素為a[0])

2、輸出數組輸出有誤;(應循環輸出數組元素)

 

 

數組2:簡化的插入排序;

實驗代碼:

#include <stdio.h>
main()
{
    int n,i,j,x,a[11];
    scanf("%d",&n);
    for(i=0;i<n;i++)
    scanf("%d",&a[i]);
    scanf("%d",&x);
    i=0;
    while(a[i]<x&&i<n)
         i++;
    for (j=n-1;j>=i;j--)
    {
        a[j+1]=a[j];
    }
    a[i]=x;
    for(i=0;i<n+1;i++)
    printf("%d ",a[i]);
}

解題思路:

(1)

第一步:定義數組及其相關變量;

第二步:輸入數組元素個數及其元素;

第三步:輸入所插入常數;

第四步:從第一個元素依次判斷是否小於所插入常數,若判斷完或數組元素大於所插入元素即停止;

第五步:將大於所插入常數的數組元素序列依次向后加一;

第六步:輸入數組元素;

(2)

調試中所遇問題及解決方法:

1、”&&“與”||“算數符混淆;(將”||“換成”&&“)

2、最后輸出數組元素時少輸出一個;(將a[n]換成a[n+1])

 

 

 

 總結:

1、定義函數后加分號多余;

2、數組中第一個元素為a[0];

3、輸出數組時用for循環語句輸出;

4、定義函數后不用加”;“;

5、”&&“:與,”||“:或,”!“非;

6、三目運算符:”A?B:C;“,先判斷A的值是否為真,若為真則執行B,若為假則執行C;

7、多維數組:int num[3][4]={{1,2,3,4}{5,6,7,8}{4,3,2,1}{8,7,6,5}};

<現在睡覺的話會做夢,而現在學習的話會讓夢實現>

 評論:

於桐: 於桐同學的作業還是很優秀的,不過第一個流程圖為什么要給兩遍呢,第二個題的解題思路是否有點過於簡單呢,個人觀點僅供參考^-^。

王文琪:王文琪同學的作業完成的很完美 對於學習的總結很到位 值得我去學習 相信你在你的努力下會變得更加優秀

崔鳳宇:崔鳳宇同學的作業內容很清晰,不過我覺得解題步驟是否過於簡化,沒能明確反應接下來的流程圖,相信你能在接下來的學習中更優秀。

圖表:

時間

十三周 十四周 十五周 十六周 十七周
博客字數 0 0 0 129 217
代碼行數 92 84 102 98 117

 


免責聲明!

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



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