這個做業屬於哪一個課程 | C語言程序設計 |
這個做業的要求在哪裏 | 2019年春季學期第四周做業 |
我在這個課程的目標是 | 瞭解選擇排序法和冒泡排序法的區別,熟練運用二分法查找法 |
這個做業在哪一個具體方面幫助我實現目標 | 這個做業讓我明白選擇排序法和冒泡排序法的區別,讓我對二維數組的定義和應用有了更深刻的瞭解 |
參考文獻 | 選擇排序法和冒泡排序法的區別 |
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
4 1 7 4 1 4 8 3 6 1 6 1 2 0 7 8 9
2 1
2 1 7 4 1
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)運行結果
1.此次做業寫了很久,確實動了腦筋,經過此次做業,我發現我對之前的知識掌握的不好,並不能熟練運用,事後得要好好看課本了。 2.經過此次做業,發現本身並不能獨立得完成做業,必須藉助課本上得例題,或者藉助別人幫忙,我會努力讓本身有獨立完成做業得能力。