C语言日常练习 Day17

news2024/9/22 17:40:47

目录

一、找出一个二维数组的鞍点

二、有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中的英文大写字母、小写字母、数字、空格以及其他字符的个数

三、有一行电文,已按下面规律编译成密码:A->Z,a->z,B->Y,b->y,即第1个字母变成第26个字母,第i个字母变成第(26-i+1)个字母,非字母字符不变。要求编程将密码译回原文,并输出密码和原文。


一、找出一个二维数组的鞍点

即该位置上的元素在该行上最大、在该列上最小,也可能没有鞍点。

  1. 先找出每行最大的值
  2. 再比较每行最大的值是否是该列最小的值

代码如下:

#include<stdio.h>

int main()
{
	int arr[20][20];
	int n,m;
	scanf("%d %d",&n,&m);
	int i,j,count=0,max;
	int temp_i,temp_j;
	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];
		for(j=0;j<m;j++)
		{
			if(max<arr[i][j])
			{
				max=arr[i][j];
				temp_j=j;
			}
		}
		//判断arr[i][temp_j]是否是arr[0][temp_j]...... arr[k][temp_j]中最小的
		int flag=1;
		int k;
		for(k=0;k<n;k++)
		{
			if(arr[k][temp_j]<max)
			{
				flag=0;
                break;
			}
		}
		if(flag==1)
		{
			printf("坐标为(%d,%d)的值:%d是鞍点\n",i,temp_j,arr[i][temp_j]);
			count++;
		}
		
	}
	if(count==0)
	{
		printf("404not found\n");
	}
	return 0;
}

运行结果如下:

 

二、有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中的英文大写字母、小写字母、数字、空格以及其他字符的个数

代码如下:

#include<stdio.h>

int main()
{
	char arr[3][80]={0};
	int i,j;
	int big_word=0,small_word=0,number=0,space=0,other=0;
	for(i=0;i<3;i++)
	{
		gets(arr[i]);
	}
	for(i=0;i<3;i++)
	{
		for(j=0;arr[i][j]!='\0';j++)
		{
			if(arr[i][j]>='A'&&arr[i][j]<='Z')
			{
				big_word++;
			}
			else if(arr[i][j]>='a'&&arr[i][j]<='z')
			{
				small_word++;
			}
			else if(arr[i][j]==" ")
			{
				space++;
			}
			else if(arr[i][j]>='0'&&arr[i][j]<='9')
			{
				number++;
			}
			else
			{
				other++;
			}
		}
	}
	printf("大写字母:%d,小写字母:%d,数字:%d,空格:%d,其他字符:%d",big_word,small_word,number,space,other);
	return 0;
}

测试用例:

??123
ABCnihao
>>

运行结果如下(如果输入的是中文输入法下的其他字符,比如:?其他字符会记数为2)

 

三、有一行电文,已按下面规律编译成密码:A->Z,a->z,B->Y,b->y,即第1个字母变成第26个字母,第i个字母变成第(26-i+1)个字母,非字母字符不变。要求编程将密码译回原文,并输出密码和原文。

题目的关键在于解密,解密的表达式我们可以写为'A' + (25 - (s[i] - 'A'))

让我们分解这个表达式来理解它是如何工作的:

  1. s[i] - 'A':这个子表达式计算当前字符 s[i] 与大写字母 'A' 之间的ASCII码差值。因为ASCII码是连续的,并且 'A' 的ASCII码是65,所以如果 s[i] 是 'B',那么 s[i] - 'A' 的结果就是 1(因为 'B' 的ASCII码是66)。

  2. 25 - ...:然后,从这个差值中减去 25。这是因为加密规则是将第 i 个字母映射到第 26-i+1 个字母。但是,由于我们已经通过 s[i] - 'A' 得到了从 0 开始的索引(对于 'A' 是 0,'B' 是 1,依此类推),我们需要做的是找到这个索引对应的“反向”索引。由于字母表有 26 个字母,所以 25 - (s[i] - 'A') 实际上是在计算从 'Z' 开始往回数的位置。

  3. 'A' + ...:最后,我们将上一步的结果加上 'A' 的ASCII码。这是因为我们想要得到的是解密后的大写字母的ASCII码。由于我们已经计算出了从 'Z' 往回数的位置,加上 'A' 的ASCII码就会将我们带回到字母表的正确位置。

举个例子,如果 s[i] 是 'Z'(ASCII码为90),那么:

  • s[i] - 'A' = 90 - 65 = 25
  • 25 - 25 = 0
  • 'A' + 0 = 'A'

所以,'Z' 被正确地解密回 'A'。

 代码如下:

#include<stdio.h>
int main()
{
	char s[100]={0};
	gets(s);
	printf("password is:%s\n", s);
	int i;
	while(s[i])
	{
		if(s[i]>='a'&&s[i]<='z')
		{
			s[i]='a' + (25 - (s[i] - 'a')) ;
		}
		else if(s[i]>='A'&&s[i]<='Z')
		{
			s[i]='A'+(25-(s[i]-'A') );
		}
		i++;
	}
	printf("original text is :%s",s);
	return 0;
}

运行结果如下:

测试用例:

I am 

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

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

相关文章

mp3格式转换器推荐哪个?音质无损转换新选择

暑假在家&#xff0c;想要自己学着制作独一无二的彩铃吗&#xff1f;首先得解决音乐格式的难题。 面对众多mp3格式转换app&#xff0c;你是否也在犹豫“mp3格式转换app常用哪个&#xff1f;” 别担心&#xff0c;热门mp3格式转换工具大盘点来袭&#xff0c;帮你轻松搞定格式转…

《深入浅出WPF》读书笔记.5控件与布局(上)

《深入浅出WPF》读书笔记.5控件与布局(上) 背景 深入浅出WPF书籍学习笔记附代码。WPF中数据是核心是主动的,UI是数据的表达是被动的。 程序的本质是数据算法&#xff1b;控件的本质是数据行为&#xff1b; 5.控件与布局 一、6类控件派生关系 1.布局控件:可以容纳多个控件…

为什么神经网络常常是linear+relu的堆叠

特征提取&#xff1a;每一层的线性变换可以看作是在提取输入数据的不同特征。通过堆叠多个这样的层&#xff0c;网络能够学习从原始数据中提取越来越复杂的特征表示非线性关系&#xff1a;单个神经元的线性变换是线性的&#xff0c;但通过引入非线性激活函数&#xff08;例如Re…

重生奇迹MU 百变职业 打造属于你的专属职业

重生奇迹MU让每个玩家都能够在这里打破常规、展示个性&#xff0c;以自己的方式创造专属的游戏体验。其中的加点玩法是最为重要的部分之一&#xff0c;它不仅在角色成长过程中发挥着重要作用&#xff0c;还能够激发玩家的想象力&#xff0c;让他们自由设计全新的玩法。同样一个…

美股收涨,半导体板块领涨;苹果iPhone出货预测上调

市场概况 在昨夜的交易中&#xff0c;美股三大股指全线收涨。道琼斯工业平均指数上涨1.39%&#xff0c;纳斯达克综合指数上涨2.34%&#xff0c;标准普尔500指数上涨1.61%。值得注意的是&#xff0c;英伟达股票涨幅近4%&#xff0c;推动了科技股的整体表现。美国十年期国债收益…

【W1】记录文档

标题 导出数据结构关系结构YOLOVOCLabelMeCOCOJSON可视化 导出数据结构 关系结构 任务 -> 批次 -> 条目 -> 帧YOLO 一张图片对应一个文本文件 .txt<object-class> <x> <y> <width> <height>归一化处理找到物体在图像中的中心点的 x&a…

018、钩子函数 mounted和beforeDestroy、父组件向子组件传递参数 props 的使用

文章目录 1、mounted 和 beforeDestroy1.1、mounted1.2、beforeDestroy 2、父组件向子组件传递参数 props2.1、子组件定义2.2、父组件调用子组件并传参 3、完整例子3.1、父组件 Tags.vue3.2、子组件 TagsMenu.vue3.3、效果图 1、mounted 和 beforeDestroy 1.1、mounted mount…

人类是怎样提取特征并学习和表达复杂的模式的?

人类提取特征、学习和表达复杂模式的过程涉及多方面的认知和神经机制。一些关键步骤和机制涉及&#xff1a; 感知是人类获取外部信息的过程。通过感官&#xff08;视觉、听觉、触觉等&#xff09;&#xff0c;人类可以接触到各种数据。注意力机制帮助我们从大量信息中筛选出重要…

Trying to Insert an input function using Python in OpenAI

题意&#xff1a;尝试在 OpenAI 中使用 Python 插入一个输入函数 问题背景&#xff1a; import os import openai openai.api_key API_Key Question "\\n\\nQ: input("Enter Question")?\\nA:", response openai.Completion.create( model"text-…

C++ 容器 deque(双端队列)

我们在学习之前的数据结构链表和顺序表的时候&#xff0c;发现顺序表插入删除慢&#xff0c;但是下标查找等速度快&#xff0c;链表下面查找等速度慢&#xff0c;但是插入删除快。它们互补。 那么我们是否可以将两个数据结构结合起来&#xff0c;产生一个完美的数据结构呢&…

LangChain与Elasticsearch向量数据库的完美结合

在过去的一年中&#xff0c;生成式 AI (Generative AI) 领域取得了显著的进展。许多新的服务和工具应运而生。其中&#xff0c;LangChain 已成为构建大语言模型 (LLM) 应用程序&#xff08;例如检索增强生成 (RAG) 系统&#xff09;最受欢迎的框架之一。该框架极大地简化了原型…

【网络安全】通过设备ID绕过双因素身份验证

未经许可,不得转载。 文章目录 正文正文 某站点登陆界面如下所示:https://redacted.com/login 输入正确的用户名密码并拦截登录请求,请求包如下: POST /api/authentication/login-2fa HTTP/1.1 Host: redacted.com Content-Length: 100 Sec-Ch-Ua: "Not)A;Brand&quo…

(南京观海微电子)——投影仪原理及使用介绍

投影仪 是一种用来放大显示图像的投影装置。目前已经应用于会议室演示以及在家庭中通过连接DVD影碟机等设备在大屏幕上观看电影。在电影院&#xff0c;也同样已开始取代老电影胶片的数码影院放映机&#xff0c;被用作面向硬盘数字数据的银幕。 投影仪的成像原理 首先&#xff…

这款新的 AI 工具会消灭 ChatGPT 吗?

随着大型语言模型 (LLM) 的出现&#xff0c;ChatGPT迅速成为全球计算机用户的家喻户晓的名字。这款由 OpenAI 设计的深度学习聊天机器人以知识宝库而闻名——一部互联网百科全书。 继ChatGPT的脚步之后&#xff0c;许多其他生成式AI工具也纷纷涌现。 2023 年 3 月&#xff0c;一…

大型、复杂、逼真的安全服和安全帽检测:SFCHD数据集和SCALE方法

智能守护工地安全&#xff1a;SFCHD数据集与SCALE模块介绍 在人工智能&#xff08;AI&#xff09;技术飞速发展的今天&#xff0c;其在建筑工地安全领域的应用正逐渐展现出巨大潜力。尤其是高风险行业如化工厂的施工现场&#xff0c;对工人的保护措施要求极为严格。个人防护装…

07、stm32外部中断

一、配置 二、代码 /* Private define ------------------------------------------------------------*/ /* USER CODE BEGIN PD */ uint8_t keyFalg 0; // 1按键被按下 /* USER CODE END PD *//* USER CODE BEGIN 4 */ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {if…

GStreamer 简明教程(三):动态调整 Pipeline

系列文章目录 GStreamer 简明教程&#xff08;一&#xff09;&#xff1a;环境搭建&#xff0c;运行 Basic Tutorial 1 Hello world! GStreamer 简明教程&#xff08;二&#xff09;&#xff1a;基本概念介绍&#xff0c;Element 和 Pipeline 文章目录 系列文章目录前言一、静…

windows11怎么加密?如何对win11系统文件进行加密?

“昔者&#xff0c;有物藏于室&#xff0c;恐人窥之&#xff0c;必施锁钥以护之。今之世&#xff0c;信息如海&#xff0c;数据若金&#xff0c;保护之责&#xff0c;重于泰山。Windows 11&#xff0c;微软之新篇&#xff0c;亦需加密之术&#xff0c;以护数据安全。” 本文将…

Golang | Leetcode Golang题解之第341题扁平化嵌套列表迭代器

题目&#xff1a; 题解&#xff1a; type NestedIterator struct {vals []int }func Constructor(nestedList []*NestedInteger) *NestedIterator {var vals []intvar dfs func([]*NestedInteger)dfs func(nestedList []*NestedInteger) {for _, nest : range nestedList {if…

期末速成复习资料——操作系统

体型&#xff1a;选择20判断10填空10*2简答4*5计算2*10 第一章 在一个计算机系统中&#xff0c;通常都含有多种硬件和软件资源。归纳起来可将这些资源分为四类&#xff1a;处理机、存储器、I/O设备以及文件&#xff08;数据和程序&#xff09;。相应地&#xff0c;OS的主要功能…