第八次做業

7-3 將數組中的數逆序存放

 實驗代碼:html

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

設計思路:git

第一步:定義變量,按要求輸入。根據題意判斷只需判斷數組中一半的數據便可獲得結果。                                                數組

第二步:定義變量h,將a[i]與a[n-1-i]進行交換。學習

第三步:輸出a[i]與a[n-1]。spa

流程圖:.net

 

遇到的問題及解決方法:設計

 在交換中將數組中全部數進行了交換致使最後一位沒有輸出。3d

提交列表:code

7-4 交換最小值和最大值:

實驗代碼:htm

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

設計思路:

第一步:定義變量並賦予初值,輸入。

第二步:判斷數組中的最小值賦給另外一個變量並把它與第一個進行交換,一樣找出最大值賦給其餘變量並與最後的進行交換。

第三步:輸出。

流程圖:

 

遇到的問題及解決方法:

 本題中所遇到的問題較多,第一次將題意理解錯誤將最大值與最小值進行了交換,後來沒有考慮最大最小值位於數組首尾的狀況,沒有引入另兩個存放的變量。

 提交列表:

7-4 數組元素循環右移問題:

實驗代碼:

 

#include <stdio.h>  
int main(void)  
{  
    int N, M, i, j, temp;  
    int a[100];  
    scanf("%d %d", &N, &M);  
    for (i = 0; i < N; i++)  
        scanf("%d", &a[i]);  
    if (M > N && M % N != 0)  
        M = M % N;  
    else if (M > N&&M%N == 0)  
        M = 0;  
    else M = M;  
        for (i = 0, j = N - M - 1; i < j; i++, j--)  
        {  
            temp = a[i];  
            a[i] = a[j];  
            a[j] = temp;  
        }  
        for (i = N - M, j = N - 1; i < j; i++, j--)  
        {  
            temp = a[i];  
            a[i] = a[j];  
            a[j] = temp;  
        }  
        for (i = 0, j = N - 1; i < j; i++, j--)  
        {  
            temp = a[i];  
            a[i] = a[j];  
            a[j] = temp;  
        }  
    for (i = 0; i < N - 1; i++)  
        printf("%d ", a[i]);  
    printf("%d", a[N - 1]);  
    return 0;  
}  

 

設計思路:

第一步:定義並輸入,先判斷M與N之間的大小關係

第二步:根據題意引入temp進行交換

第三步:輸出

流程圖:

 

遇到的問題及解決方法:

 這道題我並不理解參考了其餘答案。

提交列表:

 

 

個人git地址是:https://git.coding.net/zhouxuan12/123.git

 

總結:這兩週主要學習了數組,一維數組尚且理解,但對二維數組始終不太明白只能記着。

表格 折線圖 :

 

點評:

http://www.cnblogs.com/fengzx/p/7811151.html

 

http://www.cnblogs.com/lixiaojing/p/7878001.html

http://www.cnblogs.com/exo123/p/7954060.html

相關文章
相關標籤/搜索