16. 《C语言》——【牛客网BC124 —— BC130题目讲解】

在这里插入图片描述


亲爱的读者,大家好!我是一名正在学习编程的高校生。在这个博客里,我将和大家一起探讨编程技巧、分享实用工具,并交流学习心得。希望通过我的博客,你能学到有用的知识,提高自己的技能,成为一名优秀的程序员。如果你有任何疑问或建议,请随时在评论区留言,让我们一起成长进步!现在,让我们开始这场知识之旅吧!
在这里插入图片描述



🌏个人主页: FEN03
📑收入专栏: C语言

在这里插入图片描述



文章目录

  • 📚前言
  • 🐄牛客网题目
    • 🥩BC124 序列中删除指定数字
    • 🥩BC125 序列中整数去重
    • 🥩BC126 小乐乐查找数字
    • 🥩BC127 筛选法求素数
    • 🥩BC128 班级成绩输入输出
    • 🥩BC129 矩阵元素定位
    • 🥩BC130 最高身高
  • 👋👋🏻👋🏼结束语


📚前言

本章主要内容为,讲解牛客网BC124 ~ BC130题目,如有错误❌,还请指出,本人会虚心接受,感谢~🌹


🐄牛客网题目

🥩BC124 序列中删除指定数字


题目要求:

描述
有一个整数序列(可能有重复的整数),现删除指定的某一个整数,输出删除指定数字之后的序列,序列中未被删除数字的前后位置没有发生改变。

数据范围:序列长度和序列中的值都满足 1≤n≤50

输入描述:
第一行输入一个整数(0≤N≤50)。
第二行输入N个整数,输入用空格分隔的N个整数。
第三行输入想要进行删除的一个整数。

输出描述:
输出为一行,删除指定数字之后的序列。

示例1

在这里插入图片描述


⬇️⬇️⬇️讲解:

代码如下:

//BC124 序列中删除指定数字
#include<stdio.h>
void S_arr(int arr[], int n)
{
	//对数组,输入值
	for (int i = 0; i < n; i++)
	{
		scanf("%d", &arr[i]);
	}
}

void Print_arr(int arr[], int n, int k)
{
	//对数组进行遍历,如果不等于k,就打印
	for (int i = 0; i < n; i++)
	{
		if (arr[i] != k)
		{
			printf("%d ", arr[i]); 
		}
	}
}

int main()
{
	int n = 0; 
	int arr[100] = { 0 };
	int k = 0;
	scanf("%d", &n); 
	S_arr(arr, n); //输入数组
	scanf("%d", &k); 
	Print_arr(arr, n, k); //判断数组并且打印
	return 0; 
}

运行结果…

在这里插入图片描述

🤔🤔分析:

  1. 按照题目要求, 第一行需要输入一个整数, 则可以创建一个整型变量; 第二行输入N个整数, 输入用空格分隔, 我们可以创建一个arr整型数组, 把N个整数存放在arr里; 第三行是输入要删除的一个整数, 我们直接创建一个整型变量即可。
  2. 为了完成这一题, 我们可以分为2个函数即可。
  3. S_arr(arr, n); 实现的是遍历数组,对数组输入值。
  4. Print_arr(arr, n, k); 完成的是在数组中查找要删除的值,只要不等于删除值的都打印出来。

🥩BC125 序列中整数去重


题目要求:

描述
输入n个整数的序列,要求对这个序列进行去重操作。所谓去重,是指对这个序列中每个重复出现的整数,只保留该数第一次出现的位置,删除其余位置。

输入描述:
输入包含两行,第一行包含一个正整数n(1 ≤ n ≤ 1000),表示第二行序列中数字的个数;第二行包含n个整数(范围1~5000),用空格分隔。

输出描述:
输出为一行,按照输入的顺序输出去重之后的数字,用空格分隔。

示例1

在这里插入图片描述


⬇️⬇️⬇️讲解:

代码如下:


//BC125 序列中整数去重 
#include<stdio.h>
void Input_arr(int arr[], int n)
{
	for (int i = 0; i < n; i++)
	{
		scanf("%d", &arr[i]); 
	}
}

void Jud_arr(int arr[], int n)
{
	int flag = 0; 
	for (int i = 0; i < n; i++)
	{
		//比较除了本身外其他的元素。
		for (int j = i+1; j < n; j++)
		{
			if (arr[i] == arr[j])
			{
				arr[j] = -1;
			}
		}
	}
}

void Print(int arr[], int n)
{
	for (int i = 0; i < n; i++)
	{
		if (arr[i] != -1) 
		{
			printf("%d ", arr[i]);  
		} 
	}
}

int main()
{
	int n = 0; 
	int arr[1500] = { 0 }; 
	scanf("%d", &n);
	Input_arr(arr, n); //数组输入
	Jud_arr(arr, n);   //对数组元素判断
	Print(arr, n);	   //打印数组元素
	return 0; 
}

运行结果…

在这里插入图片描述

🤔🤔分析:

  1. 在题目要求中,输入包含2行,第一行是输入一个正整数那么我们可以直接创建一个整型变量,第二行是包含着n个整数, 那么我们需要创建一个arr整型数组来接收;
    输出为去除重复值之后,数组的元素。
  2. 为了完成, 我们分装为3个函数。
  3. Input_arr(arr, n); 完成的是遍历数组,给数组输入值。
  4. Jud_arr(arr, n); 完成的是每一个数组元素,除了自身外,与其他元素进行比较, 如果2个元素相等,那么把该元素设置为-1。
  5. Print(arr, n); 完成的是对去除掉重复值后,数组元素的打印。

🥩BC126 小乐乐查找数字


题目要求:

描述
给定n个整数和一个整数x,小乐乐想从n个整数中判断x出现几次,请编程帮他实现。

输入描述:
共3行
第一行,一个整数,表示n(1 <= n <= 100)。
第二行,共输入n个整数,两个整数之间用空格分隔。
第三行,输入一个整数,表示要查找的整数x。

输出描述:
一行,表示整数x出现的次数。

示例1

在这里插入图片描述


⬇️⬇️⬇️讲解:

代码如下:


//BC126 小乐乐查找数字 
#include<stdio.h>
void Input_arr(int arr[], int n)
{
	for (int i = 0; i < n; i++)
	{
		scanf("%d", &arr[i]); 
	}
}

void Jud_arr(int arr[], int n, int k)
{

	int count = 0;//创建一个计数器 
	for (int i = 0; i < n; i++)
	{
		//遍历arr中的元素,如果元素与k相等,计数器++
		if (arr[i] == k)
			count++; 
	}
	printf("%d\n", count);  
}

int main() 
{
	int n = 0;
	int arr[1000] = { 0 };
	int k = 0; 

	scanf("%d", &n); 
	Input_arr(arr, n); //输入数组 
	scanf("%d", &k); 
	Jud_arr(arr, n, k); //判断数组中的元素

	return 0; 
}

运行结果…

在这里插入图片描述

🤔🤔🤔分析:

  1. 题目要求, 输入3行,第一行输入一个整数, 我们可以创建一个整型变量; 第二行一共输入n个整数, 那么为了存储n个整数,我们可以创建一个arr整型数组; 第三行输入一个要查找的整型值,我们可以创建一个整型变量。
  2. 为了解决该题,我们可以分装成2个函数。
  3. Input_arr(arr, n); 该函数完成的是遍历数组,给数组输入值。
  4. Jud_arr(arr, n, k); 该函数完成的是在数组元素中, 对与查找值相同的元素进行统计,最终输出即可。

🥩BC127 筛选法求素数


题目要求:

描述
用筛选法求n以内的素数。筛选法求解过程为:将2~n之间的正整数放在数组内存储,将数组中2之后的所有能被2整除的数清0,再将3之后的所有能被3整除的数清0 ,以此类推,直到n为止。数组中不为0 的数即为素数。

输入描述:
多组输入,每行输入一个正整数(不大于100)。

输出描述:
针对每行输入的整数n,输出两行,第一行,输出n之内(包括n)的素数,用空格分隔,

第二行,输出数组中2之后被清0 的个数。每行输出后换行。

示例1

在这里插入图片描述


⬇️⬇️⬇️讲解:


//BC127 筛选法求素数
#include<stdio.h>
int main() 
{
	int n = 0;
	int count = 0; 
	while (scanf("%d", &n) != EOF)
	{
		int i = 0; 
		for (i = 2; i < n; i++)
		{
			int j = 0; 
			for (j = 2; j < i; j++) 
			{
				if (i % j == 0)
					break; 
			}
			if (i == j)
			{
				printf("%d ", i); 
				count++; //统计素数
			}
		}
		printf("\n"); 
		printf("%d\n", n - count - 1);  
	}
	return 0; 
}

运行结果…

在这里插入图片描述

🤔🤔分析:

  1. 给定一个数n,在2~n之间的正整数,如果是素数,就统计起来并且打印出来,然后用n - 统计值 - 1,输出统计值即可。

🥩BC128 班级成绩输入输出


题目要求:

描述
输入一个班级5个学生各5科成绩,输出5个学生各5科成绩及总分。

输入描述:
五行,每行输入一个学生各5科成绩(浮点数表示,范围0.0~100.0),用空格分隔。

输出描述:
五行,按照输入顺序每行输出一个学生的5科成绩及总分(小数点保留1位),用空格分隔。

示例1

在这里插入图片描述


⬇️⬇️⬇️讲解:

代码如下:

//BC128 班级成绩输入输出 
#include<stdio.h>
int main()
{
	double arr[5][5] = { 0 };
	for (int i = 0; i < 5; i++)
	{
		for (int j = 0; j < 5; j++)
		{
			scanf("%lf", &arr[i][j]); 
		}
	}

	for (int i = 0; i < 5; i++)
	{
		double sum = 0.0;
		for (int j = 0; j < 5; j++) 
		{
			printf("%.1lf ", arr[i][j]);   
			sum += arr[i][j];    
		}
		printf("%.1lf\n", sum);   
	}

	return 0; 
}

运行结果…

在这里插入图片描述

🤔🤔🤔分析:

  1. 题目最终考察的就是二维数组的输入和输出,以及如何限制小数点位。
  2. 我们主要看输出,每输出一行,都会把总分给输出,那么需要一个变量sum来统计这一行的总分。当到了下一行sum的总值会初始化为0,最终不断的重复,直到循环结束。
  3. 在%后加一个小数点,就可以控制小数位的输出。

🥩BC129 矩阵元素定位


题目要求:

描述
KiKi得到了一个n行m列的矩阵,现在他想知道第x行第y列的值是多少,请你帮助他完成这个任务。

数据范围:1≤n,m≤5 ,矩阵中的值满足 1≤val≤25

输入描述:
第一行包含两个数n和m,表示这个矩阵包含n行m列。从2到n+1行,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数,表示矩阵中的元素。接下来一行输入x和y,用空格分隔,表示KiKi想得到的元素的位置。(1≤x≤n≤10,1≤y≤m≤10)

输出描述:
一行,输出一个整数值,为KiKi想知道的值。

示例1

在这里插入图片描述


⬇️⬇️⬇️讲解:

#include<stdio.h>
void Input_arr(int arr[][100], int n, int m)
{
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < m; j++)
		{
			scanf("%d", &arr[i][j]);
		}
	}
}

int main()
{
	int n = 0;
	int m = 0;
	int x = 0;
	int y = 0;
	int arr[100][100] = { 0 };
	scanf("%d %d", &n, &m);
	Input_arr(arr, n, m);
	scanf("%d %d", &x, &y);
	printf("%d\n", arr[x - 1][y - 1]);
	return 0;
}

运行结果…

在这里插入图片描述

🤔🤔分析:

  1. 这个题目其实就是在一个二维数组中,输入要找的值对应的下标-1,最终打印出该值即可。

🥩BC130 最高身高


题目要求:

描述
KiKi想从n行m列的方阵队列中找到身高最高的人的位置,请你帮助他完成这个任务。

输入描述:
第一行包含两个整数n和m,表示这个方阵队列包含n行m列。从2到n+1行,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数,表示方阵中的所有人的身高(保证输入身高都不相同)。(1≤x≤n≤10,1≤y≤m≤10)

输出描述:
一行,输出两个整数,用空格分隔,表示方阵中身高最高的人所在的行号和列号。

示例1

在这里插入图片描述


⬇️⬇️⬇️讲解:

代码如下:


//BC130 最高身高 
#include<stdio.h>
void Input_arr(int arr[100][100], int n, int m)
{
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < m; j++)
		{
			scanf("%d", &arr[i][j]);
		}
	}
}

void Find_height_arr(int arr[100][100], int n, int m)
{
	int h = arr[0][0];
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < m; j++)
		{
			if (arr[i][j] > h)
			{
				h = arr[i][j];
			}
		}
	}

	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < m; j++)
		{
			if (arr[i][j] == h)
			{
				printf("%d %d\n", i + 1, j + 1);
			}
		}
	}
}


int main()
{
	int n = 0;
	int m = 0;
	int arr[100][100] = { 0 };
	scanf("%d %d", &n, &m);
	Input_arr(arr, n, m);
	Find_height_arr(arr, n, m);
	return 0;
}

运行结果…

在这里插入图片描述

🤔🤔分析:

  1. 创建2个整型变量,是用来控制二维数组的行和列的。随后,Input_arr(arr, n, m); 完成的是对二维数组输入值 。
  2. Find_height_arr(arr, n, m); 完成的是对二维数组中元素的比较,也就是用打擂台方法,最终最大值给h,随后遍历二维数组中的元素如果等与h就打印出来,并且对应的下标需要+1。

👋👋🏻👋🏼结束语

非常感谢您花时间阅读我的博客,希望我的分享能为您带来收获。如果您对本文有任何想法或疑问,欢迎在评论区留言交流。如果您喜欢我的博客,请继续关注,我会定期更新更多精彩内容。最后,别忘了行动起来的力量,让我们一起实践这些方法,见证自己的成长和进步!

再见,祝您生活愉快!

在这里插入图片描述


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

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

相关文章

orbslam2代码解读(4):loopclosing回环检测线程

书接上回&#xff0c;介绍完了局部建图线程&#xff0c;局部建图线程在进行局部BA之后&#xff0c;也会将新的关键帧mpLoopCloser放进回环线程的mlpLoopKeyFrameQueue容器中。所以这时候回环检测线程就根据这个新的关键帧来进行回环检测的操作。 回环检测的主要程序 // 线程主…

websocket php workerman 服务器nginx配置wss协议

首先 Nginx的版本要高&#xff0c;尽量用当前最新稳定版本。 其次 WSS协议&#xff0c;是在HTTPS协议的基础上&#xff0c;进行协议升级&#xff0c;进行通讯的&#xff0c;所以先要保证你有一个 HTTPS正常的WEB站点。 所以&#xff0c;通过Nginx -V 请保证 一定有 --with-ht…

Spring-Security(二)OAuth2认证详解(持续更新)

Spring Security & Oauth2系列&#xff1a; Spring Security&#xff08;一&#xff09; 源码分析及认证流程 Spring Security&#xff08;二&#xff09;OAuth2认证详解及自定义异常处理 文章目录 1、OAuth2.0 简介1.1 OAuth2.0 相关名词解释1.2 四种授权模式 1.3 、OAu…

2023 hnust 湖科大 嵌入式 实验报告+代码及复习资料等

2023 hnust 湖科大 嵌入式 实验报告代码及复习资料等 目录 流水灯 1 8位数码管动态扫描 3 按键输入 5 温度与关照 7 看门狗 9 内容 报告 代码 下载链接 https://pan.baidu.com/s/1LIN8rm42yrukXliI3XyZ1g?pwd1111

Java高阶数据结构-----并查集(详解)

目录 &#x1f9d0;一.并查集的基本概念&实例&#xff1a; &#x1f92a;二.并查集代码&#xff1a; &#x1f602;三&#xff1a;并查集的一些习题&#xff1a; A.省份数量 B.等式方程的可满足性 &#x1f9d0;一.并查集的基本概念&实例&#xff1a; 并查集概念&…

vue操作蓝牙教程

项目背景 想在VUE中使用蓝牙功能&#xff0c;百度了好久也尝试了好多都没法实现。 概念讲价 如果要在浏览器中使用蓝牙&#xff0c;去搜索关键字【navigator.bluetooth】&#xff0c;搜索后发现这根本不是想要的结果。 解决方法 去搜索关键字【uniappbluetoothvue】&#x…

Web前端三大主流框架简介与优缺点对比分析

随着互联网的快速发展&#xff0c;Web前端开发技术不断进步&#xff0c;各种前端框架应运而生&#xff0c;极大地提高了开发效率和用户体验。在众多框架中&#xff0c;React、Vue.js 和 Angular 是目前最受欢迎的三大主流框架。本文将对它们进行详细介绍&#xff0c;并对它们的…

110.网络游戏逆向分析与漏洞攻防-装备系统数据分析-装备与技能描述信息的处理

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 如果看不懂、不知道现在做的什么&#xff0c;那就跟着做完看效果&#xff0c;代码看不懂是正常的&#xff0c;只要会抄就行&#xff0c;抄着抄着就能懂了 内容…

网络数据库后端相关面试题(其三)

18&#xff0c; 传输控制协议tcp和用户数据报协议udp有哪些区别 第一&#xff0c;tcp是面向字节流的&#xff0c;基本的传输单位是tcp报文段&#xff1b;而udp是面向报文的&#xff0c;基本传输单位是用户数据报。 第二&#xff0c; tcp注重安全可靠性&#xff0c;连接双方在…

Linux网络 - HTTP协议

文章目录 前言一、HTTP协议1.urlurl特殊字符 requestrespond 总结 前言 上一章内容我们讲了在应用层制定了我们自己自定义的协议、序列化和反序列化。 协议的制定相对来讲还是比较麻烦的&#xff0c;不过既然应用层的协议制定是必要的&#xff0c;那么肯定已经有许多计算机大佬…

内存分配器性能优化

背景 在之前我们提到采用自定义的内存分配器来解决防止频繁 make 导致的 gc 问题。gc 问题本质上是 CPU 消耗&#xff0c;而内存分配器本身如果产生了大量的 CPU 消耗那就得不偿失。经过测试初代内存分配器实现过于简单&#xff0c;产生了很多 CPU 消耗&#xff0c;因此必须优…

果汁机锂电池充电,5V升压12.7V 升压恒压芯片SL1571B

在现代化的日常生活中&#xff0c;果汁机已经逐渐成为了许多家庭厨房的必备电器。随着科技的不断进步&#xff0c;果汁机的性能也在不断提升&#xff0c;其中锂电池的应用更是为果汁机带来了前所未有的便利。而5V升压12.7V升压恒压芯片SL1571B&#xff0c;作为果汁机锂电池充电…

skywalking9.4 链路追踪

下载&#xff0c;很慢很慢很慢&#xff01;&#xff01;&#xff01;&#xff01; jdk 使用jdk17 skywalking-apm 9.4 java-agent 9.0 idea 本地开发配置 第1行配置按实际来&#xff1b; 第2行自定义&#xff0c;一般和微服务名称相同&#xff1b; 第3行ip写安装的机器ip,端…

QQ音乐绿钻API接口:解锁更多音乐可能性

在我们日常生活中&#xff0c;音乐是不可或缺的一部分。无论是在上班途中&#xff0c;还是在健身房锻炼时&#xff0c;我们都可以通过听音乐来放松自己。然而&#xff0c;在现如今的音乐市场中&#xff0c;有时候我们会觉得收听的歌曲有限&#xff0c;想要尝试更多不同的音乐类…

量产导入 | DFT和ATE概述

什么是DFT DFT(Design for Test),即可测性设计。 一切为了芯片流片后测试所加入的逻辑设计,都叫DFT。 DFT只是为了测试芯片制造过程中有没有缺陷,而不是用来验证芯片功能的,芯片功能的完善应该应该是在芯片开发过程用先进验证方法学去做的。 芯片制造过程相当复杂,工艺缺陷…

降价潮背后:大模型落地门槛真的降了吗?

“比起价格门槛&#xff0c;AI大模型的应用门槛&#xff0c;更难跨越。” 大模型争相降价下&#xff0c;AI应用的门槛真的降低了吗&#xff1f; 答案还真不一定。因为除了价格门槛&#xff0c;AI大模型还有应用门槛。甚至&#xff0c;后者比前者更具挑战性。 B端业务场景向来…

3D感知视觉表示与模型分析:深入探究视觉基础模型的三维意识

在深度学习与大规模预训练的推动下&#xff0c;视觉基础模型展现出了令人印象深刻的泛化能力。这些模型不仅能够对任意图像进行分类、分割和生成&#xff0c;而且它们的中间表示对于其他视觉任务&#xff0c;如检测和分割&#xff0c;同样具有强大的零样本能力。然而&#xff0…

Java集合的组内平均值怎么计算

哈喽&#xff0c;大家好&#xff0c;我是木头左&#xff01; 在Java中&#xff0c;经常需要对集合进行各种操作&#xff0c;其中之一就是计算集合的组内平均值。本文将介绍如何使用Java集合来计算组内平均值&#xff0c;并提供一些示例代码和实用技巧。 1. 使用Java 8 Stream A…

MMdeploy在cuda+tensorrt下的配置和编译

MMdeploy在cudatensorrt下的配置和编译 Python安装配置MMdeploy配置openmmlab系列从工程安装mmdeploy MMdeploy_runtime以及demo编译安装量化编译runtime和demo Python安装配置MMdeploy 配置openmmlab系列 pip install -U openmim如果mim命令遭遇故障&#xff0c;或者安装失败…

龙迅LT9211D MIPIDSI/CSI桥接到2 PORT LVDS,支持 3840x2160 30Hz分辨率

龙迅LT9211D描述&#xff1a; LT9211D是一款高性能的MIPI DSI/CSI-2到双端口LVDS转换器。LT9211D反序列化输入的MIPI视频数据&#xff0c;解码数据包&#xff0c;并将格式化的视频数据流转换为AP和移动显示面板或摄像机之间的LVDS发射机输出。LT9211D支持最大12.5 dB输入均衡和…