2019春第四周作业软件
生活随笔
收集整理的這篇文章主要介紹了
2019春第四周作业软件
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
| 這個(gè)作業(yè)屬于哪個(gè)課程 | C語言程序設(shè)計(jì)2 |
| 這個(gè)作業(yè)要求在哪里 | \https://edu.cnblogs.com/campus/zswxy/software-engineering-class2-2018/homework/2774 |
| 我的課程目標(biāo) | 運(yùn)用兩種排序法解決數(shù)組問題 |
| 這個(gè)作業(yè)在哪個(gè)具體方面幫助我實(shí)現(xiàn)目標(biāo) | 要求用排序法解題 |
| 參考文獻(xiàn) | \https://www.cnblogs.com/Good-good-stady-day-day-up/p/9055698.html |
一、2019春第四周作業(yè)(基礎(chǔ)題)
題目1:選擇法排序 (20 分)
本題要求將給定的n個(gè)整數(shù)從大到小排序后輸出。
輸入格式:
輸入第一行給出一個(gè)不超過10的正整數(shù)n。第二行給出n個(gè)整數(shù),其間以空格分隔。輸出格式:
在一行中輸出從大到小有序的數(shù)列,相鄰數(shù)字間有一個(gè)空格,行末不得有多余空格。輸入樣例:
4 5 1 7 6輸出樣例:
7 6 5 11)實(shí)驗(yàn)流程
2)實(shí)驗(yàn)代碼
#include<stdio.h> int main() {int i,x,k,n,t;int a[10]; scanf("%d",&n);for(i=0;i<n;i++) /*將輸入的元素一次賦給a的n個(gè)元素*/ {scanf("%d",&a[i]);}/*對(duì)n個(gè)數(shù)進(jìn)行排序*/ for(k=0;k<n-1;k++){x=k; /*x 存放最小值所在的下標(biāo)*/ for(i=k+1;i<n;i++) /*尋找最小值所在下標(biāo)*/ {if(a[i]>a[x])x=i;}t=a[x]; /*最小元素與下標(biāo)為k的元素交換*/ a[x]=a[k];a[k]=t;}for(i=0;i<n;i++){printf("%d",a[i]);if(i!=n-1) /*應(yīng)題目要求輸入空格數(shù)量*/ printf(" ");}printf("\n");return 0; }3)本體調(diào)試過程中遇到的問題及解決方法
問題一:違反題目要求,多出了空格
問題一的解決辦法:
增加一個(gè)條件if(i!=n-1)printf(" ");4)運(yùn)行結(jié)果截圖
題目2:7-1 找鞍點(diǎn) (20 分)
一個(gè)矩陣元素的“鞍點(diǎn)”是指該位置上的元素值在該行上最大、在該列上最小。
本題要求編寫程序,求一個(gè)給定的n階方陣的鞍點(diǎn)。
輸入格式:
輸入第一行給出一個(gè)正整數(shù)n(1≤n≤6)。隨后n行,每行給出n個(gè)整數(shù),其間以空格分隔。輸出格式:
輸出在一行中按照“行下標(biāo) 列下標(biāo)”(下標(biāo)從0開始)的格式輸出鞍點(diǎn)的位置。如果鞍點(diǎn)不存在,則輸出“NONE”。題目保證給出的矩陣至多存在一個(gè)鞍點(diǎn)。輸入樣例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:
NONE1)實(shí)驗(yàn)流程
2)實(shí)驗(yàn)代碼
#include <stdio.h> int main() { int a[6][6],n; scanf("%d",&n); int i,j; for(i=0; i<n; i++) for(j=0; j<n; j++) { scanf("%d",&a[i][j]); } int k=0,y=0,flag=1,p=0; if(n==1) printf("0 0");else { for(i=0; i<n; i++) { y=i; for(p=0; p<n; p++){ if(a[i][k]<=a[i][p]) { k=p; } } for(j=0; j<n; j++){ if(a[y][k]>a[j][k]) { y=j; break; } } if(i==y){ flag=0; break; } } if(flag==0) printf("%d %d",i,k); else printf("NONE"); } return 0; }3)本體調(diào)試過程中遇到的問題及解決方法
問題一:
問題一的解決辦法:
4)運(yùn)行結(jié)果截圖
二、2019春第四周作業(yè)(挑戰(zhàn)題)
7-1 冒泡法排序 (10 分)
輸入1個(gè)正整數(shù)n(1<=n<=10),然后輸入n個(gè)整數(shù)并存放在數(shù)組中,將這n個(gè)整數(shù)從大到小排序后輸出,相鄰數(shù)字間有一個(gè)空格,行末不得有多余空格。
輸入格式:
輸入第一行給出一個(gè)不超過10的正整數(shù)n。第二行給出n個(gè)整數(shù),其間以空格分隔。輸出格式:
在一行中輸出從大到小有序的數(shù)列,相鄰數(shù)字間有一個(gè)空格,行末不得有多余空格。輸入樣例:
4 75 71 77 76輸出樣例:
77 76 75 711)實(shí)驗(yàn)流程
2)實(shí)驗(yàn)代碼
#include<stdio.h> void bubble(int a[],int n); /*定義一個(gè)bubble()函數(shù),實(shí)現(xiàn)數(shù)組的排序*/ int main() {int a[8],n;int i;scanf("%d",&n);for(i=0;i<n;i++){scanf("%d",&a[i]); /*將輸入的元素一次賦給a的n個(gè)元素*/ }bubble(a,n); /*a是等待排序的整型數(shù)組名,n指名數(shù)組a待處理的數(shù)組元素的數(shù)量*/ for(i=0;i<n;i++){printf("%d",a[i]);if(i!=n-1) /*應(yīng)題目要求輸入空格數(shù)量*/ printf(" ");}return 0; }/*對(duì)數(shù)組a中數(shù)字進(jìn)行排序*/ void bubble(int a[],int n) /*n是數(shù)組a中待排序元素的數(shù)量*/ {int i,j,t;for(i=1;i<n;i++) /*外部循環(huán)*/ {for(j=0;j<n-i;j++) /*內(nèi)部循環(huán)*/ {if(a[j]<a[j+1]) /*比較相鄰兩個(gè)元素的大小*/ { /*如果前一個(gè)元素大,則交換*/ t=a[j];a[j]=a[j+1];a[j+1]=t;}}} }3)本體調(diào)試過程中遇到的問題及解決方法
問題一:違反題目要求,多出了空格
問題一的解決辦法:
增加一個(gè)條件if(i!=n-1)printf(" ");4)運(yùn)行結(jié)果截圖
三、學(xué)習(xí)進(jìn)度條
| 3/18~3/22 | 7 時(shí) | 121 | 學(xué)到了怎么寫選擇排序及冒泡排序 | 找出鞍點(diǎn)的判斷條件是? |
四、學(xué)習(xí)感悟
本次作業(yè)的基礎(chǔ)題中(選擇排序演示視頻)比較簡(jiǎn)單,畢竟老師有講過。但是第二題找鞍點(diǎn),太難了,我知道條件,但是不知道怎么用代碼表現(xiàn)出來。挑戰(zhàn)題也比較簡(jiǎn)單,至少比找鞍點(diǎn)好寫。(冒泡排序演示視頻)
轉(zhuǎn)載于:https://www.cnblogs.com/xw1203/p/10573509.html
總結(jié)
以上是生活随笔為你收集整理的2019春第四周作业软件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 牛逼!计算机基础知识总结与操作系统 PD
- 下一篇: 给你1分钟,回答下RabbitMQ如何保