2019春季学期第四周作业
这个作业属于那个课程 | C语言程序设计Ⅰ |
---|---|
这次作业要求在哪里 | 2019春季学期第四周作业 |
我在这个课程的目标是 | 我希望能够更加掌握循环和排序 |
参考文献 | 无 |
选择法排序
本题要求将给定的n个整数从大到小排序后输出。
输入格式:
输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。
输出格式:
在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。
输入样式
4
5 1 7 6
输出样例:
7 6 5 1
1. 代码块
#include<stdio.h>
int main (void)
{int index,i,k,n,temp;int a[10];scanf("%d",&n);for(i=0;i<n;i++){scanf("%d",&a[i]);}for(k=0;k<n-1;k++){index=k;for(i=k+1;i<n;i++)if(a[i]>a[index]) index=i;temp=a[index];a[index]=a[k];a[k]=temp;}printf("%d",a[0]);for(i=1;i<n;i++)printf(" %d",a[i]);return 0;
}
2. 设计思路(流程图)
3.有对自己作业的评价
存在问题和解决办法:
这次作业是书上一样的,所以问题不大。主要因为老师在课堂上讲解了
心得:
让我学会了选择排序法。
4.程序运行结果图
找鞍点
一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。
本题要求编写程序,求一个给定的n阶方阵的鞍点。
输入格式:
输入第一行给出一个正整数n(1≤n≤6)。随后n行,每行给出n个整数,其间以空格分隔。
输出格式:
输出在一行中按照“行下标 列下标”(下标从0开始)的格式输出鞍点的位置。如果鞍点不存在,则输出“NONE”。题目保证给出的矩阵至多存在一个鞍点。
输入样式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. 代码块
#include<stdio.h>
int main()
{int n,i,j,k,index1,index2;scanf("%d",&n);int a[n][n],flag=0;for(i=0;i<n;i++){for(j=0;j<n;j++){scanf("%d",&a[i][j]);}}index1=index2=0;for(i=0;i<n;i++){index2=i;for(k=0;k<n;k++) {if(a[i][index1]<=a[i][k]){index1=k;}}for(j=0;j<n;j++){if(a[index2][index1]>a[j][index1]){index2=j;break;}}if(i==index2){flag=1;break;}}if(flag!=0)printf("%d %d",i,index1);else printf("NONE");return 0;}
2. 设计思路(流程图)
3.有对自己作业的评价
存在问题和解决办法:
本次找鞍点的题目我遇到的问题是我知道思路,但是不知道怎么写,这是很难受的,然后在室友的点拨下我敢于去尝试。但是现实很残酷在写完输入二维数组的时候,后面就卡住了,我不知道要用几个循环,这还是在我向我室友求救才解答的出来。
心得:
这次作业让我对循环进一步加强了
4.程序运行结果图
冒泡法排序
输入1个正整数n(1<=n<=10),然后输入n个整数并存放在数组中,将这n个整数从大到小排序后输出,相邻数字间有一个空格,行末不得有多余空格。
输入格式:
输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。
输出格式:
在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。
输入样式1
4
75 71 77 76
输出样例1:
77 76 75 71
1. 代码块
#include <stdio.h>int main(void){int n, i, j, temp;int a[10];scanf("%d", &n);for(i = 0;i < n;i++){scanf("%d", &a[i]);}for(i = 0;i < n;i++){for(j = 0;j < n - i - 1;j++){if(a[j] <= a[j+1]){temp = a[j];a[j] = a[j+1];a[j+1] = temp;}}}for(i = 0;i < n;i++){printf("%d", a[i]);if(i != n-1)printf(" ");}return 0;}
2. 设计思路(流程图)
3.有对自己作业的评价
存在问题和解决办法:
本次挑战作业需要用冒泡排序法,这个毕竟是挑战作业,所以和书上的选择排序法有点不同。我通过室友的讲解知道,所谓冒泡排序法就是第一个数和第二个数比较,然后第二个数和第三个数比较,这样以此类推。所以就通过这样的思路去写的。此次作业遇到的问题也还是循环的问题。我发现循环是我的天敌。
心得:
对循环有更多的了解。
4.程序运行结果图
时间消耗 | ||||
---|---|---|---|---|
学习进度条 | ||||
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较困惑的问题 |
3/18-3/22 | 3天 | 100 | 选择排序法和了解冒泡排序法 | 循环有点小问题 |