文档章节

2019春第四周作业软件

o
 osc_kfnbvkb9
发布于 2019/03/21 18:15
字数 1482
阅读 13
收藏 0

「深度学习福利」大神带你进阶工程师,立即查看>>>

这个作业属于哪个课程 C语言程序设计2
这个作业要求在哪里 \https://edu.cnblogs.com/campus/zswxy/software-engineering-class2-2018/homework/2774
我的课程目标 运用两种排序法解决数组问题
这个作业在哪个具体方面帮助我实现目标 要求用排序法解题
参考文献 \https://www.cnblogs.com/Good-good-stady-day-day-up/p/9055698.html

#一、2019春第四周作业(基础题)

##题目1:选择法排序 (20 分) 本题要求将给定的n个整数从大到小排序后输出。

输入格式:

输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。

输出格式:

在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。

输入样例:

4
5 1 7 6

输出样例:

7 6 5 1

##1)实验流程

##2)实验代码

#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个元素*/ 
	{
		scanf("%d",&a[i]);
	}
	
	/*对n个数进行排序*/ 
	for(k=0;k<n-1;k++)
	{
		x=k;               /*x 存放最小值所在的下标*/ 
		for(i=k+1;i<n;i++) /*寻找最小值所在下标*/ 
		{
	    	  if(a[i]>a[x])
	    	  x=i;
	    }
		t=a[x];             /*最小元素与下标为k的元素交换*/ 
		a[x]=a[k];
		a[k]=t;
	}
	
	for(i=0;i<n;i++)
	{
    	printf("%d",a[i]);
    	if(i!=n-1)           /*应题目要求输入空格数量*/ 
    	printf(" ");
	}
	printf("\n");
	return 0;
}

##3)本体调试过程中遇到的问题及解决方法 ###问题一:违反题目要求,多出了空格

###问题一的解决办法:

增加一个条件if(i!=n-1)printf(" ");

##4)运行结果截图

##题目2:7-1 找鞍点 (20 分) 一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。

本题要求编写程序,求一个给定的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)实验流程

##2)实验代码

#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)本体调试过程中遇到的问题及解决方法 ###问题一: ###问题一的解决办法: ##4)运行结果截图

#二、2019春第四周作业(挑战题) ##7-1 冒泡法排序 (10 分) 输入1个正整数n(1<=n<=10),然后输入n个整数并存放在数组中,将这n个整数从大到小排序后输出,相邻数字间有一个空格,行末不得有多余空格。

输入格式:

输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。

输出格式:

在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。

输入样例:

4 
75 71 77 76

输出样例:

77 76 75 71

##1)实验流程

##2)实验代码

#include<stdio.h>
void bubble(int a[],int n);  /*定义一个bubble()函数,实现数组的排序*/ 
int main()
{
	int a[8],n;
	int i;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%d",&a[i]);      /*将输入的元素一次赋给a的n个元素*/ 
	}
	bubble(a,n);              /*a是等待排序的整型数组名,n指名数组a待处理的数组元素的数量*/ 
	for(i=0;i<n;i++)
	{
		printf("%d",a[i]);
		if(i!=n-1)            /*应题目要求输入空格数量*/ 
		printf(" ");
	}
	return 0;
}
   
    /*对数组a中数字进行排序*/ 
void bubble(int a[],int n)      /*n是数组a中待排序元素的数量*/ 
{
	int i,j,t;
	for(i=1;i<n;i++)          /*外部循环*/ 
	{
		for(j=0;j<n-i;j++)    /*内部循环*/ 
		{
			if(a[j]<a[j+1])     /*比较相邻两个元素的大小*/ 
			{   
			    
			    /*如果前一个元素大,则交换*/ 
				t=a[j];
				a[j]=a[j+1];
				a[j+1]=t;
			}
			
		}
	}
}

##3)本体调试过程中遇到的问题及解决方法 ###问题一:违反题目要求,多出了空格

###问题一的解决办法:

增加一个条件if(i!=n-1)printf(" ");

##4)运行结果截图

#三、学习进度条 | 周/日期 | 这周所发时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
| :-------------: | :------------: | :------------: | :-------------: | :--------------: |
| 3/18~3/22 | 7 时 | 121 | 学到了怎么写选择排序及冒泡排序| 找出鞍点的判断条件是? |

#四、学习感悟

本次作业的基础题中<a href ="http://v.qq.com/boke/page/w/0/5/w013154oge5.html?deviceId=389dccdfc5f7e2eb864d75add421b473&qyid=869384035147790&network=14&ov=9&location=112.918040,28.364691&src=android&platform=GPhone&p1=2_22_222&social_platform=qq_friend">(选择排序演示视频)</a>比较简单,毕竟老师有讲过。但是第二题找鞍点,太难了,我知道条件,但是不知道怎么用代码表现出来。挑战题也比较简单,至少比找鞍点好写。<a href="https://m.v.qq.com/play.html?&vid=n0131ldxpzw&ptag=v_qq_com%23v.play.adaptor%233&deviceId=389dccdfc5f7e2eb864d75add421b473&qyid=869384035147790&network=14&ov=9&location=112.918040,28.364691&src=android&platform=GPhone&p1=2_22_222&social_platform=qq_friend">(冒泡排序演示视频)</a>

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
桌面即时贴软件--GloboNote

GloboNote 是一个桌面记事软件,可帮你创建待办事宜、提醒和其他笔记信息。无限制即时贴的数量,可分组整理,支持搜索,可定制文本的显示格式(字体、颜色和大小),可将某个即时贴始终显示在...

匿名
2013/01/21
6.8K
1
DNS服务器软件--BIND 10

BIND 10 是下一代的 Bind 。 Bind是一款开放源码的DNS服务器软件,Bind由美国加州大学Berkeley分校开发和维护的,全名为Berkeley Internet Name Domain它是目前世界上使用最为广泛的DNS服务器...

匿名
2013/02/22
3.7K
1
C++ 软件生态系统--Ryppl

Ryppl 是由 Boost 项目的一些成员创建的项目,因为意识到 Boost 越来越耦合、笨拙以及依赖于定制的架构。因此他们决定开始 Ryppl 项目。 Ryppl 项目的目的就是创建一个可移植的模块化的 C++ ...

匿名
2013/03/06
1.3K
0
词典软件--DictForGeeks

DictForGeeks是个人写的一款词典软件,支持高度自定义。个人在学习过程中,发现很多科技词汇的意思跟主流的词义很不一样就想写一款可以自己定义词义的词典,支持添加和查询功能。至少要比txt...

卓尔
2013/03/30
1K
0
并行编译工具--Icecream

Icecream 是由 SUSE 创建的、基于 distcc 的并行编译工具。可在远程机器上执行构建和分发、并行编译。与 distcc 不同的是,Icecream 使用一个中央服务器动态的对编译作业进行调度。...

匿名
2013/04/11
1.2K
1

没有更多内容

加载失败,请刷新页面

加载更多

PPDet:减少Anchor-free目标检测中的标签噪声,小目标检测提升明显

本文转载自AI算法修炼营。 这篇文章收录于BMVC2020,主要的思想是减少anchor-free目标检测中的label噪声,在COCO小目标检测上表现SOTA!性能优于FreeAnchor、CenterNet和FCOS等网络。整体思路...

我爱计算机视觉
昨天
0
0
BIO、NIO、AIO 区别和应用场景

点击上方“ java1234 ”,选择“标星公众号” 优质文章,第一时间送达 66套java从入门到精通实战课程分享...

小锋2
今天
0
0
ContentProvider(查询 插入 修改 删除 )

注意 本篇实在sqlite的基础上编写的所以建议首先了解sqlite 首先建立两个模块 ContentProvider ContentResolver ContentProvider 里面需要建立表和建立连接 所以在这里需要建立DBHelp类 DBHe...

osc_6ttvlt1w
刚刚
0
0
用这个网站一查,才知道自己被卖了

还记得上个月好多大佬的Twitter账号被盗用于网络诈骗的事件吗。 7月15日,美国前总统奥巴马、“股神”巴菲特、特斯拉CEO马斯克、微软创始人比尔·盖茨等人的账户连续“被登录”,用来向大众诈...

猿大白
今天
0
0
牛客多校第9场E Groundhog Chasing Death

开始以为是什么高深的数论题,后来 重新 推了一下,得到了个这么个式子。 ∏ i = a b ∏ j = c d ( p 1 m i n ( a 1 [ 1 ] i , a 2 [ 1 ] j ) p 2 m i n ( a 1 [ 2 ] i , a 2 [ 2 ] j ) . . ...

osc_wdq5dwoy
1分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部