這個做業屬於哪一個課程 | C語言程序設計II |
這個做業要求在哪裏 | 2019年春季學期第四周做業 |
我在這個課程的目標是 | 我但願可以經過學習C語言的知識,編寫程序 |
這個做業在哪一個具體方面幫助我實現目標 | 這個做業讓我知道了選擇排序和冒泡排序算法,二維數組的定義和使用,讓我對數組的知識的瞭解更加深刻了 |
參考文獻 | 排序算法;冒泡排序 |
7-2 選擇法排序 (20 分)
本題要求將給定的n個整數從大到小排序後輸出。html
輸入格式:
輸入第一行給出一個不超過10的正整數n。第二行給出n個整數,其間以空格分隔。算法
輸出格式:
在一行中輸出從大到小有序的數列,相鄰數字間有一個空格,行末不得有多餘空格。編程
輸入樣例:數組
4 5 1 7 6
輸出樣例:學習
7 6 5 1
#include<stdio.h> int main(void) { int n, a[10], comp = 0, max, x, found; scanf("%d\n", &n); for(int i = 0; i < n; i ++) scanf("%d", &a[i]); for(int j = 0; j < n-1; j ++) { max = j; for(int k =j; k < n; k ++) if(a[k] > a[max]) max = k; comp = a[max]; a[max] = a[j]; a[j] = comp; } printf("%d",a[0]); for(int m = 1; m < n; m ++) printf(" %d", a[m]); }
7-1 找鞍點 (20 分)
一個矩陣元素的「鞍點」是指該位置上的元素值在該行上最大、在該列上最小。設計
本題要求編寫程序,求一個給定的n階方陣的鞍點。3d
輸入格式:
輸入第一行給出一個正整數n(1≤n≤6)。隨後n行,每行給出n個整數,其間以空格分隔。指針
輸出格式:
輸出在一行中按照「行下標 列下標」(下標從0開始)的格式輸出鞍點的位置。若是鞍點不存在,則輸出「NONE」。題目保證給出的矩陣至多存在一個鞍點。調試
輸入樣例1:code
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
#include <stdio.h> int main() { int n, h, l; scanf("%d", &n); int a[6][6]; for (h = 0; h < n; h++) for (l = 0; l < n; l++) scanf("%d", &a[h][l]); int maxh, maxl, min, count=0; for (h = 0; h < n; h++) { maxh = h; maxl = 0; for (l = 0; l < n; l++) { if (a[maxh][maxl] <= a[h][l]) { maxh = h; maxl = l; } } for (min = 0; min < n; min++) { if (a[maxh][maxl] > a[min][maxl]) { count = 0; break; } else count++; } if (count == n) break; } if (count==n) printf("%d %d", maxh, maxl); else printf("NONE"); return 0; }
7-1 冒泡法排序 (10 分)
輸入1個正整數n(1<=n<=10),而後輸入n個整數並存放在數組中,將這n個整數從大到小排序後輸出,相鄰數字間有一個空格,行末不得有多餘空格。
輸入格式:
輸入第一行給出一個不超過10的正整數n。第二行給出n個整數,其間以空格分隔。
輸出格式:
在一行中輸出從大到小有序的數列,相鄰數字間有一個空格,行末不得有多餘空格。
輸入樣例:
4 75 71 77 76
輸出樣例:
77 76 75 71
#include<stdio.h> int main (void) { int n, i, smaller; scanf("%d", &n); int a[10]; for(i = 0;i < n;i ++) scanf("%d ", &a[i]); for(i = 0;i < n;i ++){ for(int j = i;j < n;j ++){ if(a[i] < a[j]){ smaller = a[i]; a[i] = a[j]; a[j] = smaller; } } } printf("%d",a[0]); for(int m = 1; m < n; m ++) printf(" %d", a[m]); return 0; }
該題沒有錯誤,有了思路之後就很流暢的寫出來了;
周/日期 | 這周所花的時間 | 代碼行數 | 學到的知識點簡介 | 目前比較迷惑的問題 |
---|---|---|---|---|
3/2-3/8 | 20h | 300行 | 數組,指針的大體意義,文件入門 | 數組串的使用,指針 |
3/9-3/15 | 25h | 400行 | 二維數組,文件與數組的結合運用 | 雙for循環的流程圖(再不上課,光自學感受太艱難了) |
3/16-3/22 | 22h | 450行 | 一維數組,二維數組,幾種數組排序法 | 字符串使用 |
由於在面對面結對編程時尚未看到新修改的C語言做業評價標準因此沒有特地拍照,可是還好有同窗隨手拍的朋友圈照片拍到了我和搭檔背影✌