C语言刷题训练DAY.13

news2024/11/16 20:28:21

1.有序序列判断

 

解题思路:

这里我们先看代码,我们定义了一个flag1和flag2,它的作用主要就是判断是不是升序,具体怎么使用的,我为大家画图展示。

 

解题代码:

#include<stdio.h>
int main()
{
	int n = 0;
	scanf("%d", &n);
	int arr[50] = { 0 };
	int flag1 = 0;
	int flag2 = 0;
	int i = 0;
	for (i = 0; i < n; i++)
	{
		scanf("%d", &arr[i]);
		if (i > 0)
		{
			if (arr[i] > arr[i - 1])
				flag1 = 1;
			else
				flag2 = 1;
		}
	}
	if (flag1+flag2 == 1)
		printf("sorted\n");
	else
		printf("unsorted\n");
	return 0;
}


2.序列中删除指定数字

 解题思路:

我们只需要在数组中不打印要删除的数字即可。

解题代码:

#include<stdio.h>
int main()
{
	int n = 0;
	scanf("%d", &n);
	int arr[50] = { 0 };
	int c = 0;
	int i = 0;
	for (i = 0; i < n; i++)
	{
		scanf("%d", &arr[i]);
	}
	//输入要找的数字
	scanf("%d", &c);

	for (i = 0; i < n; i++)
	{
		//如果当前下标的数子不等于要删除的数字,我们就打印它
		if (arr[i] != c)
		{
			printf("%d ", arr[i]);
		}
					
	}

	return 0;
}

方法2:

这种方法和上面的思想差不多。

#include<stdio.h>
int main()
{
	int n = 0;
	scanf("%d", &n);
	int arr[50] = { 0 };
	int c = 0;
	int i = 0;
	for (i = 0; i < n; i++)
	{
		scanf("%d", &arr[i]);
	}
	//输入要找的数字
	scanf("%d", &c);
	int j = 0;
	for (i = 0; i < n; i++)
	{
		if (arr[i] != c)
		{
			arr[j++] = arr[i];
		}
	}
	for (i = 0; i < j; i++)
	{
		printf("%d ", arr[i]);
	}
	return 0;
}



3.序列中整数去重

 解题思路:

假设我们现在有五个数字:

10 12 93 12 75

我们想去重的话,首先要拿第一个数字和后面所有的数子比较,再用第二个数字和后面的所有数字比较,如果有相同的,我们就把后面的数字把那个数字覆盖掉。

这里我直接画图为大家展示。

另外还有一种情况,如果有多个相同的数字的话,需要特殊处理。

解题代码:

#include<stdio.h>
int main()
{
	int n = 0;
	scanf("%d", &n);
	int arr[10000] = { 0 };
	int i = 0;
	for (i = 0; i < n; i++)
	{
		scanf("%d", &arr[i]);
	}
	//去重
	for (i = 0; i < n; i++)
	{
		//j是i后面的元素,让他们比较是否相等
		int j = 0;
		//j的初始位置在i的后面
		for (j = i+1; j < n; j++)
		{
			//如果两个元素相等,进入循环处理
			if (arr[i] = arr[j])
			{
				//覆盖
				int k = 0;
				for (k = j; k < n-1; k++)
				{
					arr[k] = arr[k + 1];
				}
				//删掉一个,少了一个元素
				n--;
				j--;
			}
		}
	}
	for (i = 0; i < n; i++)
	{
		printf("%d", arr[i]);
	}
	return 0;
}


4.有序序列合并

 解题思路:

我们先把输入的数据存放到同一个数组,再使用冒泡排序即可。

解题代码:

#include<stdio.h>
int main()
{
	int n = 0;
	int m = 0;
	int arr[2000] = { 0 };
	scanf("%d %d", &n, &m);
	int i = 0;
	for (i = 0; i < n; i++)
	{
		scanf("%d", &arr[i]);
	}
	for (i = n; i < n+m; i++)
	{
		scanf("%d", &arr[i]);
	}
	for (i = 0; i < n + m -1; i++)
	{
		int j = 0;
		for (j = 0; j < n + m - 1 - i; j++)
		{
			if (arr[j] > arr[j + 1])
			{
				int tmp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = tmp;
			}
		}
	}
	for (i = 0; i < n + m; i++)
	{
		printf("%d ", arr[i]);
	}
	return 0;
} 


5.班级成绩输入输出

 解题思路:

这里非常简单,只需要控制好循环输入即可。

解题代码:

#include<stdio.h>
int main()
{
	int i = 0;
	double arr[5] = { 0 };
	for(i=0;i<5;i++)
	{ 
		int j = 0;
		double sum = 0;
		for (j = 0; j < 5; j++)
		{
			scanf("%lf", &arr[j]);
			sum += arr[j];
		}
		for (j = 0; j < 5; j++)
		{
			printf("%.1lf ", arr[j]);
		}
		printf("%.1lf\n", sum);
	}

	return 0;
}


6.矩阵元素定位

 

解题思路:

这里我们要知道,二维数组的存储是如下图,kiki想看到的是第一行第二个的数字,也就是2,但是如果从二维数组里面拿出第一行第二个的数字的话,就是6,所以我们应当给行和列-1。

 

解题代码:

#include<stdio.h>
int main()
{
	int n = 0;
	int m = 0;
	scanf("%d %d", &n, &m);
	int i = 0;
	int arr[25][25] = { 0 };
	for (i = 0; i < n; i++)
	{
		int j = 0;
		for (j = 0; j < m; j++)
		{
			scanf("%d", &arr[i][j]);
		}
	}
	int R = 0;
	int T = 0;
	scanf("%d %d", &R,&T);
	printf("%d", arr[R-1][T-1]);

	return 0;
}

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

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

相关文章

springboot源码编译问题

问题一 Could not find artifact org.springframework.boot:spring-boot-starter-parent:pom:2.2.5.RELEASE in nexus-aliyun (http://maven.aliyun.com/nexus/content/groups/public/) 意思是无法在阿里云的镜像仓库中找到资源 解决&#xff1a;将配置的镜像删除即可&#…

《代码随想录》专题:回溯算法1

1、组合问题 题目链接&#xff1a;77. 组合 题解 把组合问题抽象为如下树形结构 图中每次搜索到了叶子节点&#xff0c;我们就找到了一个结果。相当于只需要把达到叶子节点的结果收集起来&#xff0c;就可以求得 n个数中k个数的组合集合。最难理解的是单层搜索的过程 回溯法的…

NIST SP 800-22测试包

NIST测试包,包含15种不同的测试,对序列的随机性进行测试。其中,部分测试包含子测试。 随便选一个序列,看看测试结果: ------------------------------------------------------------------------------ RESULTS FOR THE UNIFORMITY OF P-VALUES AND THE PROPORTION OF P…

Linux学习之Ubuntu 20.04在github下载源码安装Openresty 1.19.3.1

参考的博文&#xff1a;《在 Ubuntu 上使用源码安装 OpenResty》 《OpenResty 安装安装详解-Ubuntu》 《Linux学习之CentOS 7源码安装openresty》 https://openresty.org/en/download.html是官网下载网址&#xff0c;页面往下拉有下载的链接。 https://github.com/openresty…

表达式(Expression)

可以将lambda表达式分配给Func或Action类型委托&#xff0c;以处理内存中的集合。.NET编译器在编译时将分配给Func或Action类型委托的lambda表达式转换为可执行代码。 LINQ引入了一种名为Expression的新类型&#xff0c;该类型代表强类型的lambda表达式。这意味着lambda表达式也…

Vue2向Vue3过度核心技术工程化开发和脚手架

目录 1 工程化开发和脚手架1.1 开发Vue的两种方式1.2.脚手架Vue CLI 2 项目目录介绍和运行流程2.1 项目目录介绍2.2 运行流程 3 组件化开发4 根组件 App.vue4.1 根组件介绍4.2 组件是由三部分构成4.3 总结 5 普通组件的注册使用-局部注册5.1 特点&#xff1a;5.2 步骤&#xff…

redis持久化机制 事务详解

目录 前言&#xff1a; 持久化机制 RDB&#xff08;Redis DataBase&#xff09; 手动触发 save bgsave 自动触发 RDB特点 AOF&#xff08;append only file&#xff09; 缓冲区刷新策略 重写机制 aof重写流程 混合持久化 事务 事务操作命令 WATCH WATCH实现原…

【前端从0开始】HTML5+CSS3基础语法

html5发展 HTML5是HTML最新的修订版本&#xff0c;2014年10月由万维网联盟&#xff08;W3C&#xff09;完成标准制定。 HTML5 仍处于完善之中。然而&#xff0c;大部分现代浏览器已经具备了某些 HTML5 支持 h5添加css hack&#xff0c;css zoom知识点 特性 新的特殊内容元素…

【洛谷】P2440 木材加工

原题链接&#xff1a;https://www.luogu.com.cn/problem/P2440 1. 题目描述 2. 思路分析 整体思路&#xff1a;二分答案 设置一个变量longest来记录最长木头的长度&#xff0c;sum记录切成的小段数量之和。 令左边界l0&#xff0c;右边界llongest。 写一个bool类型的check…

函数指针.

首先看一段代码&#xff1a; #include <stdio.h> void test() {printf("hehe\n"); } int main() {printf("%p\n", test);printf("%p\n", &test);return 0; } 输出结果&#xff1a; 输出的是两个地址&#xff0c;这两个地址是 test 函…

VMware 中Centos8的NAT网络设置

1、先将虚拟机设置为NAT模式 2、打开虚拟网络编辑器&#xff0c;记录以下信息 NAT设置&#xff1a;子网掩码、网关 DHCP设置&#xff1a;I P 范围 (自动时) 3、进入Centos8的网络设置页面&#xff0c;按照记录的信息进行配置 4、重载、重启网卡 nmcli c reload ensl60 n…

【位运算】算法实战

文章目录 一、算法原理常见的位运算总结 二、算法实战1. leetcode面试题01.01. 判断字符是否唯一2. leetcode268 丢失的数字3. leetcode371 两整数之和4. leetcode004 只出现一次的数字II5. leetcode面试题17.19. 消失的两个数字 三、总结 一、算法原理 计算机中的数据都以二进…

基础论文学习(5)——MAE

MAE&#xff1a;Masked Autoencoders Are Scalable Vision Learners Self-Supervised Learning step1&#xff1a;先用无标签数据集&#xff0c;把参数从一张白纸训练到初步预训练模型&#xff0c;可以得到数据的 Visual Representationstep2&#xff1a;再从初步成型&#x…

OpenCV基础知识(7)— 腐蚀与膨胀

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。腐蚀和膨胀是图像形态学中的两种核心操作&#xff0c;通过这两种操作可以清除或者强化图像中的细节。本节课就对OpenCV中的腐蚀和膨胀操作进行详细的介绍。&#x1f308; 前期回顾&#xff1a; OpenCV基础知识&#xff08;…

Web应用登录验证的几种方式

一、SessionCookie登录 传统的sessioncookie登录是一种有状态 的登录 1、传统的sessioncookie 流程 浏览器登录发送账号和密码&#xff0c;服务端查找数据库验证用户验证成功后&#xff0c;服务端把用户状态&#xff08;登录状态&#xff0c;角色&#xff0c;权限等信息&…

Vue2向Vue3过度核心技术生命周期

目录 1 Vue生命周期2 Vue生命周期钩子3 生命周期钩子小案例1.1 在created中发送数据1.2 在mounted中获取焦点 4 案例-小黑记账清单4.1 需求图示&#xff1a;4.2 需求分析3.思路分析4.代码准备 1 Vue生命周期 思考&#xff1a;什么时候可以发送初始化渲染请求&#xff1f;&#…

【管理运筹学】第 6 章 | 运输问题(1,运输问题的数学模型及性质特点)

文章目录 引言一、运输问题的数学模型及特点1.1 运输问题的数学模型1.2 运输问题的特点1.3 运输问题的解 二、表上作业法写在最后 引言 在之前的学习过程中&#xff0c;我们接触的是较为一般性的线性规划问题。但是随着人们对运输——将人或物由一个空间位置移动到另一个空间位…

共享内存 windows和linux

服务端&#xff0c;即写入端 #include <iostream> #include <string.h> #define BUF_SIZE 1024 #ifdef _WIN32 #include <windows.h> #define SHARENAME L"shareMemory" HANDLE g_MapFIle; LPVOID g_baseBuffer; #else #define SHARENAME "sh…

基于秃鹰算法优化的BP神经网络(预测应用) - 附代码

基于秃鹰算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码 文章目录 基于秃鹰算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码1.数据介绍2.秃鹰优化BP神经网络2.1 BP神经网络参数设置2.2 秃鹰算法应用 4.测试结果&#xff1a;5.Matlab代码 摘要…

双指针算法实例4(盛最多水的容器)

题目&#xff1a; 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#xff1a;你不…