C语言代码练习(第十九天)

news2024/9/26 3:29:30

今日练习:

52、有一个已经排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中
53、输出"魔方阵"。所谓魔方阵是指它的每一行,每一列和对角线之和均相等。

54、找出一个二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。

有一个已经排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中

运行代码

int main()
{
	int arr[11] = { 1,3,9,12,15,19,23,35,45,99 };
	int t1 = 0;
	int t2 = 0;
	int num = 0;
	int end = 0;
	int i = 0;
	int j = 0;
	printf("原来的输出:\n");
	for (i = 0; i < 10; i++)
	{
		printf(" %d ", arr[i]);
	}
	printf("\n");
	printf("输入要插入的数:\n");
	scanf("%d", &num);
	end = arr[9];
	if (num > end)
	{
		arr[10] = num;
	}
	else
	{
		for (i = 0; i < 10; i++)
		{
			if (arr[i] > num)
			{
				t1 = arr[i];
				arr[i] = num;
				for (j = i + 1; j < 11; j++)
				{
					t2 = arr[j];
					arr[j] = t1;
					t1 = t2;
				}
				break;
			}
		}
	}
	printf("插入之后的顺序:\n");
	for (i = 0; i < 11; i++)
	{
		printf(" %d ", arr[i]);
	}
	printf("\n");
	return 0;
}

运行结果

输出"魔方阵"。所谓魔方阵是指它的每一行,每一列和对角线之和均相等。

解题思路

魔方阵中各数的排列规律

将1放在第一行的中间一列,从2开始直到n*n为止

各数依照每一个数存放的行比前一个数的行数减一,列数加一。

如果上一个数的行为1,则下一个数的行数就为n(列数加一),当上一个数的列数为n是,下一个数的列数应为1(行数减一)。

按照这些规则确定的位置上已有数,或上一个数是第一行第n列时,则把下一个数放在上一个数下面。

运行代码

int main()
{
	int arr[20][20] = { 0 };
	int i = 0;
	int j = 0;
	int n = 0;
	int k = 0;
	i = 1;
	printf("请输入阶级数为1-15之间的奇数:\n");
	scanf("%d", &n);//输入魔方阵的维度n
	j = n / 2 + 1;//j是维度的一半加1
	arr[i][j] = 1;//确定第一排的中间一个数为1
	for (k = 2; k <= n * n; k++)
	{
		i = i - 1;//行数减一
		j = j + 1;//列数加一
		if ((i <= 0) && (j <= n))//如果行数为一,同时列数还没有超过n,行数就从最下再继续即行数为n
		{
			i = n;
		}
		if ((i <= 0) && (j > n))//如果行数为1,同时列数超过n,行数加2,列数减1
		{
			i = i + 2;
			j = j - 1;
		}
		if (j > n)//如果只有列数超过n,列数挪到左边第二排
		{
			j = 1;
		}
		if (arr[i][j] == 0)
		{
			arr[i][j] = k;//如果这个位置还没有赋值,那么赋值为k
		}
		else//已经赋值过,那么行数加2,列数减1,再赋值为k
		{
			i = i + 2;
			j = j - 1;
			arr[i][j] = k;
		}
	}
	for (i = 1; i <= n; i++)
	{
		for (j = 1; j <= n; j++)
		{
			printf("%3d", arr[i][j]);
		}
		printf("\n");
	}
	return 0;
}

运行结果

找出一个二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。

解题思路

鞍点(Saddle point)在微分方程中,沿着某一方向是稳定的,另一条方向是不稳定的奇点,叫做鞍点。在泛函中,既不是极大值点也不是极小值点的临界点,叫做鞍点。在矩阵中,一个数在所在行中是最大值,在所在列中是最小值,则被称为鞍点。在物理上要广泛一些,指在一个方向是极大值,另一个方向是极小值的点。

先找出一行中值最大的元素,然后检查它是否为该列中最小值,如果是,则是鞍点(不需要再找别的鞍点了)输出该鞍点;如果不是,则再找下一行的最大数...如果每一行的最大数都不是鞍点,则此数组无鞍点

运行代码

#define N 3
#define M 4
int main()
{
	int i = 0;
	int j = 0;
	int k = 0;
	int arr[N][M];
	int max = 0;
	int maxj = 0;
	int flag = 0;
	printf("请输入数组:\n");
	for (i = 0; i < N; i++)
	{
		for (j = 0; j < M; j++)
		{
			scanf("%d", &arr[i][j]);
		}
	}
	for (i = 0; i < N; i++)
	{
		max = arr[i][0];
		maxj = 0;
		for (j = 0; j < M; j++)
		{
			if (arr[i][j] > max)
			{
				max = arr[i][j];
				maxj = j;
			}
		}
		flag = 1;
		for (k = 0; k < N; k++)
		{
			if (max > arr[k][maxj])
			{
				flag = 0;
				continue;
			}
		}
		if (flag)
		{
			printf("arr[%d][%d]=%d\n", i, maxj, max);
			break;
		}
	}
	if (!flag)
	{
		printf("鞍点不存在!\n");
	}
	return 0;
}

运行结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2121237.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何判断两个ip地址在同一子网

在电脑网络中&#xff0c;了解如何判断两个IP地址是否位于同一子网是一项基础而重要的技能。这对于网络管理、故障排查以及安全策略的实施都至关重要。下面就一起跟着虎观代理小二了解一下吧。 要判断两个‌IP地址是否在同一子网&#xff0c;可以通过以下步骤进行&#xff1a;‌…

Bootstrap简介

Bootstrap 一.Bootstrap简介 什么是Bootstrap? Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架。Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的。 为什么使用Bootstrap? 快速开发&#xff1a;Bootstrap 提供了一套预设的CSS样式和JavaScript组件&#xff0c;如…

SAP B1 营销单据 - 单据字段介绍(上)

背景 营销单据&#xff0c;SAP B1 中一群神秘的单据&#xff0c;在官方说明文档中并未指明【营销单据】范围&#xff0c;却经常使用这一说法。它们结构相似&#xff0c;在 用户定义字段(UDF) 功能里统一受【营销单据】部分增加字段的影响&#xff0c;可以相互复制&#xff08;…

骨传导耳机哪个牌子最好?深度优选五款优质精品机型

身为有着多年工作经验的数码博主&#xff0c;在近期工作中发现&#xff0c;许多人因为选择了不合适的劣质骨传导耳机&#xff0c;非但没有享受到音乐与通话的便捷与舒适&#xff0c;反而出现了听力损伤的情况。在这里跟大家说一下&#xff0c;选择骨传导耳机不要盲目选择&#…

[翻译] Vue 3.5 发布

翻译自 vue 官方博客 地址&#xff1a;https://blog.vuejs.org/posts/vue-3-5 今天&#xff0c;我们很高兴地宣布 Vue 3.5 “Tengen Toppa Gurren Lagann” 发布&#xff01; 此次要版本不包含任何重大更改&#xff0c;并且包括内部改进和有用的新功能。我们将在这篇博文中介绍…

ETL数据集成丨MySQL到MySQL的数据迁移实践

前言 MySQL数据迁移至另一MySQL数据库的过程&#xff0c;不仅是数据复制或移动的操作那么简单&#xff0c;它还涉及到一系列策略性考量和技术优化&#xff0c;旨在实现数据的高效、安全传输&#xff0c;以及确保目标系统的高性能运行。其深远意义在于为企业的数字化转型提供强…

智慧水务建设的基本内容

智慧水务解决方案的主要对象客户是全国各地水务投资集团、水务局、水司、水厂、农水办,也会有少量项目涉及到住建局或城管局。解决方案通常会以具体的某个业务单位的职能工作为切入点,配合物联感知、大数据分析、人工智能等技术手段,为城市供水、乡村供水的水质安全、供水调…

纯CSS实现海浪文字效果

如图所示&#xff0c;这是一个很炫酷的文字波动效果&#xff0c;文字呈现出一个海浪波动的效果&#xff0c;这样的动画效果可以显著加强文案本身的含义。本文将解析如何使用纯CSS实现这个特效&#xff0c;基于这个动图可以分析出实现这个效果的主要功能要点&#xff1a; 整体呈…

室内小间距LED显示屏操作指南

随着LED显示技术的迅速发展&#xff0c;小间距LED显示屏在城市的各个角落逐渐普及。它不仅提升了城市形象&#xff0c;还丰富了人们的日常生活。小间距LED显示屏以其高清、节能等特点&#xff0c;广泛应用于各类室内场景&#xff0c;如会议室、展览馆、指挥中心等。然而&#x…

嵌入式鸿蒙系统开发语言与开发方法分析

大家好,今天主要给大家分享一下,HarmonyOS系统的主力开发语言ArkTS语言开发方法,它是基于TypeScript(简称TS)语言扩展而来。 第一:ArkTS语言基本特性 目的:声明式UI,让开发者以更简洁,更自然的方式开发高性能应用。 声明式 UI基本特性: 基本UI描述:ArkTS定义了各种装饰…

【STM32 Blue Pill编程】-定时器输入捕获与频率计数

定时器输入捕获与频率计数 文章目录 定时器输入捕获与频率计数1、定时器介绍2、硬件准备及接线2、模块配置2.1 定时器配置2.2 串口配置3、信号频率测量计算4、代码实现在本文中,将介绍在STM32CubeIDE中配置定时器的工作模式为输入捕获模式,并通过编程对外部输入信号进行频率计…

Prompt工程师压箱底绝活——Prompt的基本组成部分、格式化输出与应用构建

目前&#xff0c;大模型输出往往包含许多冗余信息。本文中&#xff0c;基于文心一言&#xff0c;我们给出了一种包含指令、输入数据、背景信息和输出提示的提示词结构&#xff0c;让大模型能够真正直击应用开发者的需求&#xff0c;严格执行开发者的指令&#xff0c;为大模型的…

opencv实战项目二十二:模板匹配定位对象位置

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、opencv模板匹配介绍二、使用代码三、效果 前言 在现代计算机视觉领域&#xff0c;模板匹配是一种基础而强大的技术&#xff0c;它能够帮助我们在图像中找到…

k8s服务发布Ingress

Kubernetes暴露服务的方式目前只有三种&#xff1a;LoadBlancer Service、NodePort Service、Ingress&#xff0c;通俗来讲&#xff0c;ingress和之前提到的Service、Deployment&#xff0c;也是一个k8s的资源类型&#xff0c;ingress用于实现用域名的方式访问k8s内部应用。 In…

第 6 章图像聚类

本章将介绍几种聚类方法&#xff0c;并展示如何利用它们对图像进行聚类&#xff0c;从而寻找相似的图像组。聚类可以用于识别、划分图像数据集&#xff0c;组织与导航。此外&#xff0c;我们还会对聚类后的图像进行相似性可视化。 6.1 K-means聚类 K-means 是一种将输入数据划…

FLV 格式详解资料整理,关键帧格式解析写入库等等

FLV 是一种比较简单的视频封装格式。大致可以分为 FLV 文件头&#xff0c;Metadata元数据&#xff0c;然后一系列的音视频数据。 资料够多&#xff1a; FLV格式解析图 知乎用户 Linux服务器研究 画了一张格式解析图&#xff0c;比较全&#xff0c;但默认背景是白色&#xff…

2024年职业院校人工智能实训室方案解读(融入AIGC技术)

随着人工智能技术的飞速发展&#xff0c;职业院校作为技能型人才培养的重要基地&#xff0c;亟需加强人工智能实训室的建设&#xff0c;以应对市场需求和行业变革。该方案不仅涵盖了全面的人工智能教学内容&#xff0c;还融入了AIGC&#xff08;Artificial Intelligence Genera…

k8s笔记——kubebuilder实战

kubebuilder Kubebuilder 是一个基于 CRD 来构建 Kubernetes API 的框架&#xff0c;可以使用 CRD 来构建 API、Controller 和 Admission Webhook。 动机 目前扩展 Kubernetes 的 API 的方式有创建 CRD、使用 Operator SDK 等方式&#xff0c;都需要写很多的样本文件&#x…

​微图在线显示高程为什么与下载结果不一致

之前有客户向我们提出了在线显示的高程值和下载的数据高程值不一致的问题&#xff0c;这里解释一下不一致的原因。 在线显示 在线的情况分成两种&#xff0c;一种是浏览高程数据渲染地图&#xff0c;一种是非高程数据渲染地图&#xff0c;例如高清影像&#xff08;WGS84&…

小小GCD、LCM拿下拿下

目录 最大公约数&#xff08;GCD&#xff09; 最大公约数&#xff08;GCD&#xff09;求解&#xff1a; 一、辗转相除法 二、三目运算符 三、位运算 最大公约数&#xff08;GCD&#xff09;模板&#xff1a; 最大公约数&#xff08;GCD&#xff09;例题&#xff1a; 最…