阶段性学习小记

news2024/10/5 21:16:27

大家好,今天我们来详细的总结一下最近这段时间的习题。

在这里插入图片描述

习题一

在这里插入图片描述

#include<stdio.h>
int main()
{
	char arr[13] = { 0 };
	int N = 0;
	scanf("%d", &N);
	int k = 0;
	int i = 0;
	while (N)
	{
		if (k != 0 && k % 3 == 0)
			arr[i++] = ',';
		arr[i++] = N % 10 + '0';
		N /= 10;
		k++;
	}
	for (i--; i >= 0; i--)
		printf("%c", arr[i]);
	return 0;
}

详解:我们这里想要插入什么首先就要想到数组,这是我们可以想到最简单的东西了,首先题目中要求一行输入一个整数,我们就可以最简单的定义一个变量然后从键盘输入就行了,我们在定义一个字符数组,将每一位数字都放进数组当中,我们要将它一个一个放入字符数组中就得使用循环,我们对10取余就得到末位数字,将它放入数组中,我们要注意数组中存放的是字符,所以我们减去一个字符0就是字符型了,让偶就对N除以10去掉末位,k进行计数,到了三位数就插入一个逗号,我们可以对3取余,如果等于0就插入逗号,但是我们得记得不能等于0,不然第一个数组就等于0,最后在k++,我们因为是i++,我们这里的i是要比存入数组的下标大1,所以在循环打印的时候我们就得用i–输出。

习题二

在这里插入图片描述

#include<stdio.h>
int is_exit(char ch, char arr[])
{    
	int i = 0;
	while (arr[i])
	{
		if (ch == arr[i])
			return 1;
		i++;
	}
	return 0;
}
int main()
{
	char arr1[100] = { 0 };
	char arr2[100] = { 0 };
	gets(arr1);
	gets(arr2);
	int i = 0;
	while (arr1[i])
	{
		if (is_exit(arr1[i], arr2) == 0)
		{
			printf("%c", arr1[i]);
		}
		i++;
	}
	return 0;
}

思路:从一个字符串删除另外一个字符串的字符,我们就利用遍历,两个相同的字符串就不输出,不相同的字符串就输出。

我们定义两个数组,题目的要求是输入字符串,我们就得用gets输入,如果我们用scanf的话就得用getchar()去消除回车键,后面我们利用循环,如果我们arr1里面的字符和arr2的一样就不打印,不一样就打印,所以我们定义的函数必须要有遍历这一功能,同样是利用循环完成。

习题三

在这里插入图片描述
思路:杨氏矩阵我们是从其中找到一个数,而这个矩阵是每行从左到右都是递增的,从上到下都是递增的,我们的思路是可以给它看成一个二维数组,首先让这个数和这个二维数组第一行最后一个相比,如果大于这个数就行加1,如果小于这个数就列减1。如下图所示:

在这里插入图片描述

int Find(int arr[3][3], int *px, int *py, int k)
{
	int x = 0;
	int y = *py - 1;

	while (x <= *px - 1 && y >= 0)
	{
		if (arr[x][y] < k)
		{
			x++;
		}
		else if (arr[x][y] > k)
		{
			y--;
		}
		else
		{
			*px = x; 
			*py = y;
			return 1;
		}
	}
	*px = -1;
	*py = -1;
	return 0;
}

int main()
{
	int arr[3][3] = { 1,2,3, 4,5,6, 7,8,9 };
	int k = 0;
	int x = 3;
	int y = 3;
	scanf("%d", &k);//7
	int ret = Find(arr, &x, &y, k);//存在返回1,如果不存在返回0
	if (ret == 1)
	{
		printf("Yes\n");
		printf("%d %d\n", x, y);
	}
	else
	{
		printf("No\n");
		printf("%d %d\n", x, y);
	}
		

	return 0;
}

习题四

在这里插入图片描述

思路:这里我们可以利用暴力求解的方法一个一个的去遍历,这样的话时间复杂度就会很高,所以我们利用另外一种方法^操作符,它的原则是相同为0,不同为1,而且它是满足交换律的。

int find_single_dog(int arr[], int sz)
{
	int ret = 0;
	int i = 0;

	for (i = 0; i < sz; i++)
	{
		ret ^= arr[i];
	}
	return ret;
}
int main()
{
	int arr[] = { 1,2,3,4,5,1,2,3,4,5,9 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	int ret = find_single_dog(arr, sz);
	printf("%d\n", ret);
	return 0;
}

我们将我们的数组和数字个数传过去,我们在函数中全部异或起来,出现两次的数字就会为0,而0与任何一个数异或起来都是这个数字本身,所以只出现一次的数字与其他数字全部异或起来的结果就是这个数字了。

习题五

在这里插入图片描述
思路:我们同样是利用^操作符进行求解。

void find_single_dog2(int arr[], int sz, int*ps1, int*ps2)
{
	int r = 0;
	int i = 0;
	//1. 异或在一起
	for (i = 0; i < sz; i++)
	{
		r ^= arr[i];
	}
	//2. 计算r的第几位是1,得到i
	int pos = 0;
	for (i = 0; i < 32; i++)
	{
		if (((r >> i) & 1) == 1)
		{
			pos = i;
			break;
		}
	}
	//3. 分组
	int s1 = 0;
	int s2 = 0;
	for (i = 0; i < sz; i++)
	{
		if (((arr[i] >> pos) & 1) == 1)
		{
			(*ps1) ^= arr[i];
		}
		else
		{
			(*ps2) ^= arr[i];
		}
	}

}
int main()
{
	int arr[] = { 1,2,3,4,5,1,2,3,4,6};
	int sz = sizeof(arr) / sizeof(arr[0]);
	int s1 = 0;
	int s2 = 0;
	find_single_dog2(arr, sz, &s1, &s2);
	printf("s1 = %d s2 = %d\n", s1, s2);

	return 0;
}

这里就小伙伴们自行完成啦,逻辑和原理和上一题是一样的。

经过这一段时间的C语言学习让我感触最深的是这是一门对逻辑能力要求很高的语言,想要真正的去学好熟练地掌握这一门语言,我们需要花费大量的时间去整理,去整理自己的思路,整理自己的做题方法,积累自己的经验。未来道阻且长,让我们继续努力向前吧,加油,小伙伴们!

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

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

相关文章

三步,金蝶K3的数据可视化了

数据可视化的一大特点就是“一图胜千言”&#xff0c;没什么能比图表更直观展现数据的了。那&#xff0c;金蝶K3系统上那海量数据能不能也做成数据可视化报表&#xff1f;操作复杂吗&#xff0c;难度大吗&#xff1f; 换了别的软件来做&#xff0c;操作多、难度大是板上钉钉&a…

重复性管理--从泛值到泛型以及泛函(中)--泛函是什么及为什么

在前面, 我们探讨了泛型范式在解决重复性问题上的应用, 在这里, 将继续探讨泛函范式在解决重复性问题上的作用. 注: 关于"泛函(functional)“这一名称, 前面说了, 泛型的本质是"参数化类型”, 那么, 按照这一思路, 泛函的意思也可以理解为"函数的参数化"或…

jvm垃圾回收算法有哪些及原理

目录 垃圾回收器1 Serial收集器2 Parallel收集器3 ParNew收集器4 CMS收集器5 G1回收器三色标记算法标记算法的过程三色标记算法缺陷多标漏标 垃圾回收器 垃圾回收机制&#xff0c;我们已经知道什么样的对象会成为垃圾。对象回收经历了什么——垃圾回收算法。那么谁来负责回收垃…

电子宣传册制作攻略,打造完美视觉效果

随着互联网的普及&#xff0c;电子宣传册已成为企业宣传的重要手段之一。但是你知道如何制作一份吸引人的电子宣传册&#xff0c;打造完美的视觉效果呢&#xff1f; 我们只需利用FLBOOK这个在线电子期刊制作平台&#xff0c;就可以打造出完美视觉效果的电子宣传册&#xff0c;操…

postgres和postgis下载链接

PostGIS Index of /postgis/windows/ postgres PostgreSQL 10.9 (64-bit) Download arcgis支持的版本 适用于 PostgreSQL 的 ArcGIS 11.1 和 ArcGIS Pro 3.1 要求 适用于—ArcGIS Enterprise | ArcGIS Enterprise 文档 arcgis如何连接 ArcMap 中的数据库连接—ArcMap | 文…

亚马逊添加购物车和收藏有什么区别

亚马逊的添加购物车和收藏是两个不同的功能&#xff0c;它们在用户行为和用途上有明显的区别&#xff1a; 1、添加购物车&#xff08;Add to Cart&#xff09;&#xff1a; 当用户点击"添加到购物车"按钮时&#xff0c;所选商品将被放入他们的购物车&#xff0c;而…

Power BI 傻瓜入门 7. 清理、转换和加载数据

本章内容包括 根据异常、属性和数据质量问题确定清理需求解决数据类型、值、键、结构和查询之间的不一致在数据加载之前根据查询和命名约定对数据进行流化处理 要进行任何数据清理和转换&#xff0c;您的组织需要分析师、工程师和侦探。这里的想法是&#xff0c;在进入系统之…

严重内卷的电商直播还有机会吗?教你如何在电商直播中脱颖而出!

用行业内的一句话来讲&#xff1a;如今的电商直播带货&#xff0c;没有最卷只有更卷&#xff01; 过去&#xff0c;电商直播带货只是中规中矩的“叫卖式”直播。随着“全民直播带货”的潮流兴起&#xff0c;电商直播带货行业的竞争变得越来越激烈&#xff1a;同质化的内容不断…

ADC架构种类说明_笔记

ADC架构种类说明 FLASH_架构ADC 可达GHz级别Pipeline_ADC架构SAR ADC架构![在这里插入图片描述](https://img-blog.csdnimg.cn/d42b65568b6648ec92b04e7b6c53fa0d.png?x-oss-processimage/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Ieq5bCP5ZCD5aSa,size_20,col…

怎么下载微信视频号视频?

你是否曾经在浏览视频号时看到了一些精彩的视频号&#xff0c;希望能够保存下来&#xff0c;但却不知道如何下载&#xff1f;别担心&#xff01;本篇文章将为你介绍一个方便易用的视频号下载工具&#xff0c;让你轻松保存喜欢的视频号视频&#xff01;犀牛下载是一款专门为微信…

drf-分页,coreapi自动生成接口文档

目录 分页 视图类继承ListAPIView的分页具体使用方法 # 第一种PageNumberPagination页码分页 # 第二种LimitOffsetPagination偏移分页 # 第三种CursorPagination游标分页 视图类的使用 视图类继承APIView或GenericAPIView的分页使用 coreapi 如何写好接口文档 自动生…

众和策略可靠吗?A股构筑“市场底” 卫星互联网和5.5G逆势走强

可靠 周一A股三大指数低开低走&#xff0c;午后加快下探并创出今年以来新低&#xff0c;尾盘跌幅略有收窄。截至收盘&#xff0c;上证综指收于2939.29点&#xff0c;跌落1.47%&#xff1b;深证成指收于9425.98点&#xff0c;跌落1.51%&#xff1b;创业板指收于1864.91点&#…

AtCoder Beginner Contest 325 题解 A-E

目录 A - Takahashi sanB - World MeetingC - SensorsD - Printing MachineE - Our clients, please wait a moment A - Takahashi san 原题链接 题目描述 给你两个字符串&#xff0c;将第二个字符串改为san后与第一个字符串一起输出 public static void solve() throws IOExc…

spring懒加载

简介 Spring默认会在容器初始化的过程中&#xff0c;解析xml或注解&#xff0c;创建配置为单例的bean并保存到一个map中&#xff0c;这样的机制在bean比较少时问题不大&#xff0c;但一旦bean非常多时&#xff0c;spring需要在启动的过程中花费大量的时间来创建bean &#xff0…

Postman笔记

文章目录 1.安装2.简介和使用流程3 postman使用3.1 测试集与HTTP请求发送HTTP请求和分析响应数据 3.2 发送HTTP请求和分析响应数据3.3 Postman中请求体提交方式3.4 Postman使用之接口测试3.5 使用Postman新建一个mock服务3.6 请求数据的参数化3.7 断言与脚本导出 1.安装 官网地…

外汇天眼:过度交易是大忌,交易不是越多越好!

过度交易是交易中的大忌&#xff0c;因为交易并不是越多越好。为什么我们倾向于将交易失败归因于心态呢&#xff1f;这可能是因为我们认为一笔交易成功和失败的概率都是50%&#xff0c;从而让人们误以为他们具备盈利的能力。然而&#xff0c;如果我们具备盈利的能力&#xff0c…

【Java基础学习打卡21】流程控制

目录 前言一、流程控制的重要性二、流程控制结构1.顺序结构2.分支结构3.循环结构 三、顺序结构总结 前言 无论是哪种编程语言&#xff0c;都会提供流程控制结构&#xff1a;顺序结构、分支结构和循环结构。其实计算机之所以能够完成很多自动化的任务目标&#xff0c;因为它可以…

Flutter笔记:图片的 precacheImage 函数

Flutter笔记 图片的 precacheImage 函数 作者&#xff1a;李俊才 &#xff08;jcLee95&#xff09;&#xff1a;https://blog.csdn.net/qq_28550263 邮箱 &#xff1a;291148484163.com 本文地址&#xff1a;https://blog.csdn.net/qq_28550263/article/details/134004572 【简…

执行 SQL 响应比较慢,你有哪些排查思路?

排查思路 如果执行 SQL 响应比较慢&#xff0c;我觉得可能有以下 4 个原因&#xff1a; 第 1 个原因&#xff1a;没有索引或者导致索引失效。 第 2 个原因&#xff1a;单表数据量数据过多&#xff0c;导致查询瓶颈第 3 个原因&#xff1a;网络原因或者机器负载过高。 第 4 个原…

JAVA-编程基础-11-02-文件流

Lison <dreamlison163.com>, v1.0.0, 2023.05.07 JAVA-编程基础-11-02-文件流 文章目录 JAVA-编程基础-11-02-文件流File 构造方法File 常用方法获取功能的方法**绝对路径和相对路径****判断功能的方法****创建、删除功能的方法**目录的遍历递归遍历 RandomAccessFile*…