文档章节

2019年春季学期第四周作业

o
 osc_a22drz29
发布于 2019/03/22 19:18
字数 1396
阅读 21
收藏 0

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

一、基础作业

判断方阵对称

输入一个正整数 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]) {	
			    found=0;
           	            break;
       	                 }
		}
		if (found ==0){
			break;
   		}
  	}

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

	return 0;
}

设计思路:

本题调试过程碰到问题及解决办法:

在填空过程中没有想到题目的偶然性,需要利用到变量found的值来输出才是最准确的。

运行结果截图:

选择法排序

本题要求将给定的n个整数从大到小排序后输出。 输入格式: 输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。 输出格式: 在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。 输入样例:

4
5 1 7 6

输出样例:

7 6 5 1

实验代码:

#include<stdio.h>
int main()
{
	int i, j, 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++){
		j=k;
		for(i=k+1; i<n; i++)
			if(a[i]>a[j]) 	j=i;
			temp=a[j];
			a[j]=a[k];
			a[k]=temp;
	}
	printf("%d", a[0]);
	for(i=1; i<n; i++)
		printf(" %d", a[i]);

	return 0;	
}

设计思路:

本题调试过程碰到问题及解决办法:

忽视了结尾处的空格,导致PTA显示格式错误,后将空格输出形式改动就对了。

运行结果截图:

找鞍点

一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。 本题要求编写程序,求一个给定的n阶方阵的鞍点。 输入格式: 输入第一行给出一个正整数n(1≤n≤6)。随后n行,每行给出n个整数,其间以空格分隔。 输出格式: 输出在一行中按照“行下标 列下标”(下标从0开始)的格式输出鞍点的位置。如果鞍点不存在,则输出“NONE”。题目保证给出的矩阵至多存在一个鞍点。 输入样例:

4
1 7 4 1
4 8 3 6
1 6 1 2
0 7 8 9

输出样例:

2 1

实验代码:

#include <stdio.h>
int main()
{
	int n;
	scanf("%d", &n);
	int a[10][10], Row[10], max;
	int flag = 0, row;

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

		max = a[i][0];
		for (int j = 0; j < n; j++)
			if (max <= a[i][j])
			{
				max = a[i][j];
				Row[i] = j;
			}
	}

	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			if (a[j][Row[i]] < a[i][Row[i]])
			{
				flag = 0;
				break;
			}
			else
				flag++;
		}
		if (flag == n)
		{
			row = i;
			break;
		}
	}

	if (flag)
		printf("%d %d", row, Row[row]);
	else
		printf("NONE");
	
	return 0;
}

设计思路:

本题调试过程碰到问题及解决办法:

后重新思考,重新写的代码......

运行结果截图:

冒泡法排序

输入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 a[10];
  int i,j,flag,n;
  scanf("%d",&n);
  
  for(i=0;i<n;i++)
    scanf("%d",&a[i]);
    
  for(i=0;i<n-1;i++)   
  {
    for(j=0;j<n-1-i;j++)   
    {
      if(a[j]>a[j+1])   
      {
        flag=a[j+1];
        a[j+1]=a[j];
        a[j]=flag;
      }
    }
  }
  
  for(i=n-1;i>0;i--){
    printf("%d ",a[i]);}
  printf("%d",a[0]);
  
  return 0;
}

设计思路:

本题调试过程碰到问题及解决办法:

遗忘了空格对格式的影响,需要在输出数据%d后加空格。

运行结果截图:

二、学习进度条

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
3/1-3/8 46h 78 定义文件,以及文件的导入导出和读写 数组的运算,输出
3/9-3/15 12h 42 ....未上课 对文件中数据的提取运用,以及一些嵌套语句的实际用法
3/16-3/22 32h 67 二维数组数据的处理和输出 对一些复杂的循环还有些看不懂

三、学习感悟

这周与结对编程队友合作完成了前三题~感觉不错呀,两个人的效率果然还是比自己一个人的效率要高出不少啊。这周的作业依然觉得很难......虽然最后关头还是逼着自己弄懂了,但是我不喜欢整天坐在电脑面前做作业的感觉,作业又难,步骤还复杂,让我原地去世叭.....

上一篇: Redis主从和集群
下一篇: Java面试总结
o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
《C语言程序设计》课程教学目录

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

osc_u4ki5b6h
2019/05/15
12
0
题目--找鞍点 及 选择排序和冒泡排序

2019年春季学期第四周作业: 作业课程 C语言程序设计II 作业要求 2019年春季学期第四周作业 课程目标 背熟栈,队列,向量函数 从作业中得到的帮助 更加熟练两种基本排序算法(冒泡排序和选择...

osc_n6euf5h6
2019/03/19
5
0
2019年春季学期《C语言程序设计II》课程总结

2019年春季学期《C语言程序设计II》课程总结 ####1.课程情况 教学内容 课堂小结 作业安排 优秀作业 备注 1.开学谈心 2.测验数据类型、运算符与表达式的自学情况,并讲解测验题目3.第七章 数组...

osc_bkdv2it5
2019/08/19
10
0
第四周作业

2019春第四周编程 作业属于哪个课程 c语言程序设计2 要求在哪里 2019春季学期第四周作业 我在这个课程的目标 学会一些排序法 作业在哪个具体方面帮助我实现目标 让我学会冒泡法 选择法 参考文...

osc_gk4k1cnl
2019/03/22
2
0
作业——5

这个作业属于哪个课程 C语言程序设计Ⅱ 这个作业的要求在哪里 2019年春季学期第四周作业 我在这个课程的目标是 通过C语言完成一些几年后必须完成的事...... 这个作业在哪个具体方面帮助我实现...

osc_kfnbvkb9
2019/03/22
1
0

没有更多内容

加载失败,请刷新页面

加载更多

是否有可能从另一个git存储库中挑选一个提交? - Is it possible to cherry-pick a commit from another git repository?

问题: I'm working with a git repository that needs a commit from another git repository that knows nothing of the first. 我正在使用一个git存储库,需要从另一个不知道第一个存储库......

技术盛宴
昨天
9
0
【LeetCode】53 盛最多水的容器

题目 解题思路 双指针法: https://leetcode-cn.com/problems/container-with-most-water/solution/sheng-zui-duo-shui-de-rong-qi-by-leetcode-solution/ 代码 public class Solution { ......

JaneRoad
昨天
16
0
阿里云OSS配置CDN加速

首先购买CDN流量包 然后添加域名 添加好后 然后将域名OSS.xxxx.com 解析到 生成的CDN域名上 这样就完成了

可达鸭眉头一皱
昨天
11
0
js 整数与小数正则替换片段

说明 /(\d+)/g 整数 /(\d+\.\d+)rem/g 小数 /(\d+\.\d+|\d+)rem/g 其中 | 或 条件 例子 全局查找带 rem 单位的,替换成 px 单位 let text = text.replace(/(\d+\.\d+|\d+)rem/g, function(s......

DrChenXX
昨天
9
0
ubuntu下minicorba例子

一、开发环境安装 sudo apt install omniorb omniorb-idl omniidl libomniorb4-dev libomniorb4-2 omniorb-nameserver libomnithread4 libomnithread4-dev 二、源文件: Hi.idl module ......

wangxuwei
昨天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部