2019第四周做業


這個做業屬於哪一個課程 C語言程序設計
這個做業的要求在哪裏 2019年春季學期第四周做業
我在這個課程的目標是 瞭解選擇排序法和冒泡排序法的區別,熟練運用二分法查找法
這個做業在哪一個具體方面幫助我實現目標 這個做業讓我明白選擇排序法和冒泡排序法的區別,讓我對二維數組的定義和應用有了更深刻的瞭解
參考文獻 選擇排序法和冒泡排序法的區別

1、基礎做業

7-2 選擇法排序 (20 分)
本題要求將給定的n個整數從大到小排序後輸出。編程

輸入格式:

輸入第一行給出一個不超過10的正整數n。第二行給出n個整數,其間以空格分隔。數組

輸出格式:

在一行中輸出從大到小有序的數列,相鄰數字間有一個空格,行末不得有多餘空格。學習

輸入樣例:

4
5 1 7 6

輸出樣例:

7 6 5

1)運行代碼ui

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

2)設計思路

3)編程過程當中遇到的問題及解決辦法


問題:19行代碼後面忘記分號了;沒有注意到行末不得有多餘得空格。
解決辦法:當輸出最後一個數得時候單獨輸出就解決了行末多餘空格得問題。
4)運行截圖
.net

7-1 找鞍點 (20 分)
一個矩陣元素的「鞍點」是指該位置上的元素值在該行上最大、在該列上最小。
本題要求編寫程序,求一個給定的n階方陣的鞍點。設計

輸入格式:

輸入第一行給出一個正整數n(1≤n≤6)。隨後n行,每行給出n個整數,其間以空格分隔。3d

輸出格式:

輸出在一行中按照「行下標 列下標」(下標從0開始)的格式輸出鞍點的位置。若是鞍點不存在,則輸出「NONE」。題目保證給出的矩陣至多存在一個鞍點。code

輸入樣例1:

4
1 7 4 1
4 8 3 6
1 6 1 2
0 7 8 9

輸出樣例1:

2 1

輸入樣例2:

2
1 7
4 1

輸出樣例2:

NONE

1)運行代碼blog

#include<stdio.h>
int main()
{
    int n,a[6][6],s=1;
    
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            scanf("%d",&a[i][j]);
        }
    }
    
    for(int i=0;i<n;i++){
        int q=0,p=0;
        
        for(int j=1;j<n;j++){
            if(a[i][j]>=a[i][q]){
                q=j;
            }
        }
        
        for(int k=0;k<n;k++){
            if(a[k][q]<=a[p][q]){
                p=k; 
            }
        }
        
        if(p==i){
            s=0;
            printf("%d %d",p,q);
            break;
        }
    }
    if(s){
        printf("NONE");
    }
}

2)設計思路

3)編程過程當中遇到的問題及解決辦法

問題:除了代碼上的問題,對嵌套循環用錯。
解決辦法:認真對比大括號的位置。
4)運行結果

挑戰做業
7-1 冒泡法排序 (10 分)
輸入1個正整數n(1<=n<=10),而後輸入n個整數並存放在數組中,將這n個整數從大到小排序後輸出,相鄰數字間有一個空格,行末不得有多餘空格。排序

輸入格式:

輸入第一行給出一個不超過10的正整數n。第二行給出n個整數,其間以空格分隔。

輸出格式:

在一行中輸出從大到小有序的數列,相鄰數字間有一個空格,行末不得有多餘空格。

輸入樣例:

4 
75 71 77 76

輸出樣例:

77 76 75 71

1)運行代碼

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

2)設計思路

3)編程過程當中遇到的問題及解決辦法
上一題我就是用的冒泡排序法,因此這題我沒有遇到什麼問題,基本一次性經過,只是題目沒看清楚,將從大到小打成了從小到大。
4)運行結果

2、學習進度條

3、感悟

1.此次做業寫了很久,確實動了腦筋,經過此次做業,我發現我對之前的知識掌握的不好,並不能熟練運用,事後得要好好看課本了。 2.經過此次做業,發現本身並不能獨立得完成做業,必須藉助課本上得例題,或者藉助別人幫忙,我會努力讓本身有獨立完成做業得能力。

相關文章
相關標籤/搜索