GDPU C语言 天码行空6

1. 数组顺序查找

在这里插入图片描述
⭐ 语法题

#include<stdio.h>

int main()
{
	int n,x,i;
	int a[102];
	scanf("%d", &n);
	
	for (i = 0; i < n; i++){
		scanf("%d", &a[i]);
	}
	scanf("%d", &x);
	int idx = -1;//记录x的最大下标
	int max = 0;// 记录大于x的数
	int min = 0;// 记录小于x的数

	for (i = 0; i < n; i++)//从前往后遍历数组
	{
		int t = a[i];
		if (t == x)
			idx = i;
		if (t > x)
			max++;
		if (t < x)
			min++;
	}
	printf("%d\n%d\n%d\n", idx, max, min);
	return 0;
}

2. 数组指定位置插入和删除

在这里插入图片描述
⭐ 细节输出(注意数组有效元素个数)

#include<stdio.h>

int main()
{
	int x1,n1,n2,i;
	int a[11] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
	scanf("%d %d", &x1, &n1);
	scanf("%d", &n2);

	//原数组输出
	for (i = 0; i < 10; i++)
		printf("%5d", a[i]);
	printf("\n");

	//插值,输出
	if (n1 < 0 || n1 > 10){
		n1 = 10;
	}
	//要插入x的位置 后边的所有元素 往后挪一位,腾出空间给 x
	for (i = 10; i > n1; i--){
		a[i] = a[i - 1];
	}
	a[n1] = x1;//插入 x1
	for (i = 0; i < 11; i++)
		printf("%5d", a[i]);
	printf("\n");

	//删除,输出
	if (n2 > 10 || n2 < 0)//删除的位置不合法
	{
		n2 = 0;//改为删除第一个元素
	}
	//删除的元素位置 后边的元素 都往前挪一位 覆盖前边的就ok了
	for (i = n2; i < 10; i++)
		a[i] = a[i + 1];
	
	for (i = 0; i < 10; i++)
		printf("%5d", a[i]);
	printf("\n");

	return 0;
}

3. 数组元素修改

在这里插入图片描述
⭐ 统一输出

#include<stdio.h>

int main()
{
	int r,c;
	int a[20] = { 81, 55, 102, 84, 204, 105, 56, 85, 58, 202, 101, 83, 104, 103, 82, 201, 59, 203, 57, 205 };
	for (r = 0; r < 4; r++)//枚举行
	{
		for (c = 0; c < 5; c++)//枚举列
		{
			int idx = r * 5 + c;//数组下标
			int score = a[idx];//分数

			if (score < 60)
				score = -1;
			else if (score > 100 && score <= 200)
				score = -2;
			else if (score > 200)
				score = -3;
			printf("%5d", score);
		}
		printf("\n");//记得换行
	}
	return 0;
}

4. 字符个数统计

在这里插入图片描述
⭐ 数组下标映射:字符 --> ASCII 值 --> 数组下标
🤬 局部数组无默认值(记得初始化就好)

#include<stdio.h>

int main()
{
	char a[100];
	int i;
	for (i = 0; i < 100; i++)//记得初始化数组,不然就是随机值啦
		a[i] = ' ';
	int cnt[256];//cnt 数组记录字母出现的次数,ASCII码值 0 - 256 覆盖大部分字符
	for (i = 65; i < 130; i++)//初始计数数组
		cnt[i] = 0;

	scanf("%s", a);
	for (i = 0; i <= 80; i++)
	{
		char c = a[i];
		cnt[c]++;
	}
	for (i = 97; i <= 122; i++){
		int num = cnt[i] + cnt[i - 32];
		if (num)// 非0即真
			printf("%c is %d\n", i, num);
	}
	return 0;
}

5. 数组元素共享

在这里插入图片描述
⭐ 从两边往中间找,不符合要求就交换

#include <stdio.h>
#include <math.h>

int IsPrimer(int num){

	int i, flag = 0;

	for (i = 2; i <= num / 2; i++){

		if (num%i == 0)

			break;

	}

	if (i>num / 2)

		flag = 1;

	return flag;

}

int main(){

	int a[100], n, i, j, temp;

	scanf("%d", &n);

	for (i = 0; i<n; i++)

		scanf("%d", &a[i]);

	i = 0, j = n - 1;

	while (i<j){
		//【1】//请在此填入多行语句
		while (!IsPrimer(a[i]))//从左往右找,找到第一个 素数 的下标i
			i++;
		while (IsPrimer(a[j]))//从右往左找,找到第一个 和数 的下标j
			j--;
		if (i < j)//交换
		{
			/* 临时变量交换
			temp = a[i];
			a[i] = a[j];
			a[j] = temp;
			*/
			// 异或交换
			a[i] ^= a[j];
			a[j] ^= a[i];
			a[i] ^= a[j];
		}
	}

	for (i = 0; i<n; i++)
		printf("%5d", a[i]);

	return 0;
}

6. 找两个数组中共同元素值问题

在这里插入图片描述
⭐ 先枚举已有数组的元素,再枚举输入数组的元素,相同就输出
⭐ 已有数组的元素不重复,可以间接实现去重

#include <stdio.h>

int main()
{
	int n, i, j, s1[10] = { 10, 21, 34, 12, 15, 8, 17, 20, 23, 30 }, s2[10];

	scanf("%d", &n);

	for (i = 0; i<n; i++)

		scanf("%d", &s2[i]);

	//【1】//请在此填入多行语句

	for (i = 0; i < 10; i++)//枚举已有数组的元素
		for (j = 0; j < n; j++)//枚举输入数组的元素
			if (s1[i] == s2[j]){
				printf("%5d", s2[j]);
				break;
			}

	return 0;
}

7. 数组循环右移k个位置

在这里插入图片描述
⭐ 一步一步来右移就好啦

#include <stdio.h>

int main(){
	int a[100], n, k, i, j;
	int tmp;
	scanf("%d", &k);
	scanf("%d", &n);
	for (i = 0; i<n; i++)
		scanf("%d", &a[i]);
	//【1】//请在此填入多行语句
	while (k--)//向右移动 k 次,每次移动 1 位
	{
		tmp = a[n - 1];
		for (i = n-1; i > 0; i--){
			a[i] = a[i - 1];
		}
		a[0] = tmp;
	}
	for (i = 0; i<n; i++)
		printf("%3d", a[i]);
	return 0;
}

8. 数组逆序保存

在这里插入图片描述
⭐ 逆序输出就好啦

for (i = n-1; i >= 0; i--)
		printf("%3d", a[i]);

⭐ 非得折腾一下的话

#include <stdio.h>

int main(){

	int a[100], n, i, tmp;
	scanf("%d", &n);

	for (i = 0; i<n; i++)
		a[i] = 2 * i + 1;

	for (i = 0; i<n; i++)
		printf("%3d", a[i]);

	printf("\n");

	//【1】//请在此填入多行代码
	for (i = 0; i + i < n; i++){//第1 和 倒1 交换,第2 和 倒2 交换……
		tmp = a[i];
		a[i] = a[n - 1 - i];
		a[n - 1 - i] = tmp;
	}

	for (i = 0; i<n; i++)
		printf("%3d", a[i]);

	return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何写一个优质高效的网络项目实施方案?这篇文章值得收藏!

随着互联网技术的不断发展&#xff0c;网络项目的实施成为了许多企业和组织的重要任务。网络项目实施方案是指在进行网络项目实施时&#xff0c;为了保障项目的顺利进行&#xff0c;达到项目目标和交付要求&#xff0c;所制定的详细计划和操作指南。一个好的网络项目实施方案对…

Unity Game FrameWork—模块使用—对象池分析

官方说明&#xff1a;提供对象缓存池的功能&#xff0c;避免频繁地创建和销毁各种游戏对象&#xff0c;提高游戏性能。除了 Game Framework 自身使用了对象池&#xff0c;用户还可以很方便地创建和管理自己的对象池。 下图是Demo中用到的对象池&#xff0c;所有的实体以及UI都使…

C++11多线程:原子操作std::automic-用于多个线程之间共享的变量。

系列文章目录 文章目录系列文章目录前言一、std::automic二、使用步骤1.代码案例总结前言 原子操作std::automic的基本概念和用法。 一、std::automic std::atomic来代表原子操作&#xff0c;std::automic是个类模板。其实std::atomic这个东西是用来封装某个类型的值的。 1.1…

echarts tooltip文字太长换行

tooltip文字太长换行&#xff0c;设置了宽度也没有换行&#xff0c;加上一句&#xff1a; extraCssText: ‘max-width:300px; white-space:pre-wrap’, 没加之前是这样&#xff1a; 加上之后 extraCssText: ‘max-width:300px; white-space:pre-wrap’, tooltip: {trigger: &…

Mybatis(六)缓存

缓存是Mybatis中非常重要的特性&#xff0c;Mybatis的一级缓存基于SqlSession实现&#xff0c;二级缓存基于Mapper实现。 一、缓存的使用 一级缓存默认开启&#xff0c;Mybatis提供了一个配置参数localCacheScope来控制一级缓存的级别&#xff0c;该参数的取值可以是session、…

主动配电网故障恢复的重构与孤岛划分统一模型研究【升级版本】(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

CesiumForUnreal实现多边形裁剪3dTileset效果

文章目录 1.实现目标2.实现过程3.原理浅析4.参考资料1.实现目标 基于CesiumForUnreal插件的Cartographic Polygon Actor在Runtime运行时环境下实现对地形3DTileset的多边形裁剪效果,GIF动图如下: 2.实现过程 在Editor中的具体操作过程可以参考CesiumForUnreal官方裁剪地形的…

小巧型温湿度传感器

小巧型温湿度传感器是一种小巧的温湿度传感器&#xff0c;其作用是测量周围环境的温度和湿度&#xff0c;以及确定这些数据是否处于合适的范围内。这种传感器已经被广泛应用于医疗、工业、家居、冷链运输等领域&#xff0c;成为现代工业中不可或缺的一部分。小巧型温湿度传感器…

前置知识——Linux网络虚拟化

Linux网络虚拟化 信息是如何通过网络传输被另一个程序接收到的&#xff1f; 我们讨论的虚拟化网络是狭义的&#xff0c;它指容器间网络。 好了&#xff0c;下面我们就从 Linux 下网络通信的协议栈模型&#xff0c;以及程序如何干涉在协议栈中流动的信息来开始了解吧。 Linux…

全能PDF:Pdfium.Net SDK 2023-03-18 Crack

Pdfium.Net SDK 是领先的 .Net 库&#xff0c;用于生成、操作和查看可移植文档格式的文件。我们提供高级 c# / VB.Net API&#xff0c;用于在 WEB 服务器或任何其他服务器系统上动态创建 pdf&#xff0c;并在现有桌面或 WEB 应用程序中实现“另存为 PDF”功能。 入门&#xff1…

汽车网络管理的意义和分类

网络管理的意义&#xff1a; 1. 工作状态协同&#xff1a; 在任意多ECU节点网络工作时&#xff0c;对同一网络ECU的通信状态做统一的管理&#xff0c;保证各个ECU节点可以在条件满足的时候进入低功耗模式 2. 信息交互协同&#xff1a; 可以根据NM报文状态判定特定ECU的运行状态…

ESP32设备驱动-MPL3115A2压力传感器驱动

MPL3115A2压力传感器驱动 文章目录 MPL3115A2压力传感器驱动1、MPL3115A2介绍2、硬件准备3、软件准备4、驱动实现1、MPL3115A2介绍 MPL3115A2 是一款紧凑型压阻式绝对压力传感器,具有 I2C 数字接口。 MPL3115A2 具有 20 kPa 至 110 kPa 的宽工作范围,该范围涵盖了地球上的所…

CarSim仿真快速入门(二十四)-CarSimSimulink联合仿真中的输入和输出IO接口

导入和导出数组用于Simulink以外的外部仿真工具。同样的设置也用于LabVIEW、ASCET、FMI/FMU以及可能用MATLAB、Python和其他语言编写的自定义程序。 在所有这些情况下,I/O通道。导入和I/O通道。输出屏幕用于配置VS数学模型以满足外部仿真工具的通信要求。 I/O 通道:输出 输…

[攻城狮计划(三)] —— 看门狗定时器

&#x1f64c;秋名山码民的主页 &#x1f602;一个打过一年半的oier&#xff0c;写过一年多的Java&#xff0c;现在致力于学习iot应用的普通本科生 &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f64f;作者水平有限&#xff0c;如发现…

双非二本如何入职腾讯?只需要做好这些准备就能进大厂?

每年的招聘旺季在“金三银四”和“金九银十”这2段时间&#xff0c;许多在春招中没有找到心仪大厂offer的测试小伙伴最近有私信我&#xff0c;想要了解如何在秋招中一举获得心仪大厂的青睐&#xff0c;那今天我就来和大家扒一扒那些大厂自动化测试面试题以及注意事项哦&#xf…

Python解题 - CSDN周赛第43期

感觉周赛越来越无趣了&#xff0c;基本都是考过的题目。上期周赛也是&#xff0c;4道题都曾考过&#xff0c;问哥也都写过题解&#xff0c;奖品也不吸引人&#xff0c;实在没什么好写了。 回想前段时间用力过猛&#xff0c;刷了C站大部分OJ题&#xff0c;以致于现在看到题目就直…

Elasticsearch:索引状态是红色还是黄色?为什么?

在我之前文章 “Elasticsearch&#xff1a;如何调试集群状态 - 定位错误信息” 中&#xff0c;我有详细介绍如何调试集群状态。在今天的文章中&#xff0c;我将详细介绍如何故障排除和修复索引状态。 Elasticsearch 是一个伟大而强大的系统&#xff0c;特别是创建一个可扩展性极…

MySQL函数、视图、存储过程及触发器

前言 MySQL在我们工作中都会用到&#xff0c;那么我们最常接触的就是增删改查&#xff0c;而对于增删改查来说&#xff0c;我们更多的是查询。但是面试中&#xff0c;面试官又不会问你什么查询是怎么写的&#xff0c;都是问一些索引啊&#xff0c;事务啊&#xff0c; 底层结构…

Hbase 介绍

Hbase 简介 Hbase 是一个开源的非关系型的分布式数据库&#xff0c;运用于HDFS文件系统之上&#xff0c;可以容错地存储海量稀疏的数据。Hbase是一个高可靠、高性能、面向列、可伸缩、实时读写的分布式数据库&#xff0c;主要用来存储非结构化和半结构化的松散数据 。 Hbase的…

ChatGPT中文在线官网-如何与chat GPT对话

怎么下载ChatGPT中文版 ChatGPT是一种基于Transformer架构的自然语言处理技术&#xff0c;其中包含了多个预训练的中文语言模型。这些中文ChatGPT模型大多数发布在Github上&#xff0c;可以通过Github的源码库来下载并使用&#xff0c;包括以下几种方式&#xff1a; 下载预训练…