文档章节

第四周作业

o
 osc_fmg49rzg
发布于 2019/03/21 22:14
字数 1791
阅读 12
收藏 0

精选30+云产品,助力企业轻松上云!>>>

#2019年春季学期第四周作业

这个作业属于哪个课程 C语言程序设计II
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering-class2-2018/homework/2774
我在这个课程的目标是 希望以后碰见类似的题目时能够不出错误的做出来
这个作业在哪个具体方面帮助我实现目标 告诉我学会运用二维数组解题,也通过找鞍点这个题巩固了自定义函数的运用
参考文献 C语言程序设计(第3版)

#5-1程序填空题 输入一个正整数 n (1≤n≤10)和n 阶方阵a的元素,如果方阵a中的所有元素都沿主对角线对称,输出“Yes”, 否则,输出“No”。主对角线为从矩阵的左上角至右下角的连线,方阵a中的所有元素都沿主对角线对称指对所有i, k,a[i][k]和a[k][i]相等。输入输出示例如下:

##输入:

3 1 2 3 4 5 6 7 8 9 ##输出:

No ###代码

#include <stdio.h>
int main(void)	
{	
   	int found, i, k, n;
   	int a[10][10];

   	scanf ("%d", &n);
   	for (i = 0; i < n; i++)	
   		for (k = 0; k < n; k++)
			scanf("%d", &a[i][k]);

 	found = 1;
   	for (i = 0; i < n; i++){	
   		for (k = 0; k < i; k++){
   			if (
a[i][k]!=a[k][i]
(3分)) {	
			    
found=0
;          
           	            break;
       	                 }
		}
		if (
!found
){
			break;
   		}
  	}

  	if (found != 0){
  		printf("Yes\n");
  	}  
  	else{
  		printf("No\n");
  	}  

	return 0;
}

由题目所给知道前面需要比较a[i][k]与a[k][i]是否相等,若不相等found=0;后面一空即若没有找到。

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

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

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

##输入样例: 4 5 1 7 6 ##输出样例: 7 6 5 1

###1,实验代码

#include<stdio.h>
int main (void)
{
  int n,i,k,tmp;
  scanf("%d",&n);
  int a[11];
  for(i=0;i<n;i++)
  scanf("%d",&a[i]);
  for(i=0;i<n-1;i++)
  for(k=i;k<n;k++)
    if(a[i]<a[k]){
      tmp=a[i];
      a[i]=a[k];
      a[k]=tmp;
    }
  for(i=0;i<n;i++)
  if(i<n-1)
     printf("%d ",a[i]);
  else
     printf("%d",a[i]);
  return 0;
}

###2,设计思路

###3,遇到的问题及解决方法 问题:for语句中对i后面的数字的for循环的表达式出现错误

解决方法:询问同学,知道了i后面的一个数字应该从k=i开始,且for语句中i的表达式的范围应该为i<n-1;

问题:错误的输入了一个printf

解决方法:自己仔细分析画流程图后发现是错的,然后删除;

问题:一开始写没有考虑到最后一个数字的空格问题

解决方法:写出代码后询问同学仔细审题然后解决;

###4,运行图片

#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 ###实验代码

#include<stdio.h>

int a[100][100];
int solve(int n,int flag1,int flag2)
{
	for(int i=0;i<n;i++)
	if(a[flag1][flag2]<a[flag1][i])
	return 0;
	for(int j=0;j<n;j++)
	if(a[flag1][flag2]>a[j][flag2])
	return 0;
	
	return 1;
}
int main (void)
{
	int n,i,j,flag1,flag2,found=0;
	flag1=0;flag2=0;
	scanf("%d",&n);
	
	for(i=0;i<n;i++){
		for(j=0;j<n;j++)
	    scanf("%d",&a[i][j]);
}
	for(i=0;i<n;i++)
	for(j=0;j<n;j++){
		if(solve(n,i,j)){
				printf("%d %d",i,j);
				found++;
		}
	}
	if(found==0)
	  printf("NONE");
	return 0;	
 }

###设计思路

###遇到的问题及解决方法 问题:不知道如果进行行与列的下标的比较

解决方法:询问同学,用自定义函数解决

问题:对数组进行输入后不知道后面的步骤怎么做

解决方法:与同学交流用两个for语句对行与列进行循环

问题:有地方的小问题没有注意

解决方法:运行结果错误了之后,自己找出错误 ###运行图片

#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 ()
{
    int n,i,j,tmp;
    scanf ("%d",&n);
    int a [n];
    char op=' ';
    for (i=0; i<n; i++) {
        scanf ("%d",&a [i]);
    }
    for (i=1; i<n; i++)
       for (j=0; j<n-i; j++)
          if (a [j] < a [j+1]) {
            tmp=a [j];
            a [j] = a [j+1];
            a [j+1] = tmp;
          }
    for (i=0; i<n; i++) {
        printf ("%d",a [i]);
        if (i<n-1) {
            printf ("%c",op);
        }
    } 
    return 0;
}

###设计思路:

###遇到的问题及解决方法:

问题:看到题目不懂冒泡法是什么

解决方法:自己查找资料,知道原理就是:冒泡排序需要多次遍历列表,比较相邻的项并交换那些无序的项,每次遍历列表将下一个最大的值放在正确的位置。如果在列表中有n个项目,则第一遍需要比较n-1个项

这个题目因为书上有例题所以问题较少

###运行图片:

##学习进度条

周/日期 这周所花的时间 代码行数 学到的知识点 目前比较疑惑的问题
2/25-3/3 三天 45 学习数组及用法 数组的长度问题
3/4-3/10 三天 40 文件的处理问题 文件指针的用法
3/11-3/15 四天 50 对数组的遍历 关于遍历的范围还有不理解的地方
3/16-3/22 四天 80 用一维数组和二维数组编程 冒泡算法的运用

##感悟

知识开始变得越来越难了,完成作业的时间所花的时间越来越多,对个人的能力要求也就会越来越高。

对pta的两个题目(选择排序,冒泡法)的区别还是有些不理解

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
《C语言程序设计》课程教学目录

《C语言程序设计》课程教学目录 不要去精确定义单个论题,应将一整套问题组织成体系。——黎曼(1826-1866)德国著名数学家 教学过程 2018年秋季学期 C语言程序设计I—第一周教学 C语言程序设...

osc_u4ki5b6h
2019/05/15
12
0
2018面向对象程序设计(Java)第4周学习指导及要求

2018面向对象程序设计(Java) 第4周学习指导及要求(2017.9.19-2017.9. 26) 学习目标 掌握类与对象的基础概念,理解类与对象的关系; 掌握对象与对象变量的关系; 掌握预定义类的基本使用方...

osc_ely8lhcl
2018/09/19
2
0
C语言I博客作业10

这个作业属于哪个课程 C语言程序设计II 这个作业要求在哪里 C语言I作业10 我在这个课程的目标是 学会编程,运用编程制作有趣的东西 这个作业在那个具体方面帮助我实现目标 多了解c语言的一些...

osc_9hx9qg8o
2019/11/28
2
0
第四周作业

问题 答案 这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-4/homework/9772 我在这个课程的目标是 熟练掌握C语言中for语句和markd...

osc_1zmv6tk6
2019/10/18
2
0
20165226 2017-2018-2《Java程序设计》课程总结

目录 一、作业汇总 二、总结 三、问卷调查 <hr/><hr/> 一、作业汇总 预备作业1:我期望的师生关系 预备作业2:学习基础和C语言基础调查 预备作业3:linux安装及学习 第一周: Java入门 第一周...

osc_apej9ed1
2018/06/10
2
0

没有更多内容

加载失败,请刷新页面

加载更多

如何在控制器中使用过滤器? - How to use a filter in a controller?

问题: I have written a filter function which will return data based on the argument you are passing. 我编写了一个过滤函数,它将根据您传递的参数返回数据。 I want the same functi......

富含淀粉
35分钟前
20
0
android:layout_weight是什么意思? - What does android:layout_weight mean?

问题: I don't understand how to use this attribute. 我不明白如何使用这个属性。 Can anyone tell me more about it? 谁能告诉我更多关于它的事情? 解决方案: 参考一: https://stacko...

javail
今天
17
0
CSS背景不透明度[重复] - CSS Background Opacity [duplicate]

问题: This question already has an answer here: 这个问题已经在这里有了答案: How do I give text or an image a transparent background using CSS? 如何使用CSS为文本或图像提供透明背...

fyin1314
今天
17
0
node http 获取gb2312网页如何转为utf8

最初,我想当然认为是下述做法,但被证明是错误的 const http = require('http'), iconv = require('iconv-lite');const url = 'http://xxx';http.get(url, function(res) { var bo......

高延
今天
24
0
动态规划:LC198.打家劫舍

题目描述: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入...

曦鱼violet
今天
30
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部