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

news2024/12/23 12:38:54

在这里插入图片描述


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



🌏个人主页: 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.coloradmin.cn/o/1812312.html

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

相关文章

jvm学习笔记(一) ----- JAVA 内存

JAVA 内存 一、程序计数器二、虚拟机栈三、本地方法栈四、堆五、非JAVA内存(堆外内存)1.元空间(Metaspace)2.直接内存 链接: jvm学习笔记(二) ----- 垃圾回收 链接: jvm学习笔记(三) ----- 垃圾回收器 一、程序计数器 虚拟机需要通过『程序计数器』记录指令执行到哪了。线程要…

关于LayUI弹出层请求一次其他网页后无法再次点击按钮问题

问题描述 使用layer弹出层去请求另一个页面&#xff0c;关闭弹窗后本页面按钮无法点击也不报错,如下面弹窗代码 layer.open({type: 1,area: [500px, 400px],title: 编辑信息,shade: 0.6,shadeClose: true,maxmin: false,anim: 0,success: function (layero, index) {$.ajax({u…

【代码随想录】【算法训练营】【第35天】 [1005]K次取反后最大化的数组和 [134]加油站 [135]分发糖果

前言 思路及算法思维&#xff0c;指路 代码随想录。 题目来自 LeetCode。 day 35&#xff0c;连休两天~ 题目详情 [1005] K次取反后最大化的数组和 题目描述 1005 K次取反后最大化的数组和 解题思路 前提&#xff1a;数组 思路&#xff1a;优先负数取反&#xff0c;未…

汇编语言作业(七)

目录 一、实验目的 二、实验内容 三、实验步骤以及结果 四、实验总结 一、实验目的 熟悉无符号数和有符号数乘法和除法指令的使用掌握无符号位扩展指令的使用掌握逻辑指令的使用 二、实验内容 1、编写一个汇编程序&#xff0c;要求从键盘中输入一个小写字母&#xff0c;将其转…

性价比之选!W830NB降噪耳机高性能配置,探底价309元起

目录 一、降噪技术的革新&#xff1a;-45dB深度沉浸 二、超长续航&#xff0c;乐动不停歇 三、音质的极致追求&#xff1a;Hi-Res双金标认证 四、空间音频与低延迟游戏模式 五、人性化设计与智能互联 六、总结 在这个快节奏的时代&#xff0c;寻找一片属于自己的宁静空间…

TypeScript入门教程

今天&#xff0c;给大家分享一个自己总结的超详细的TypeScript入门教程电子书。从TypeScript的基础知识开始讲解&#xff0c;包括数据类型、变量、运算符、条件语句、循环结构等基本概念。接着&#xff0c;详细介绍TypeScript中的函数、类和接口等高级特性&#xff0c;以及如何…

理解查准率P、查全率R及Fβ度量怎么得来的

如果得到的是一组样本在两个算法上的一次预测结果&#xff0c;其中每个样本都被赋予了一个为正样本的概率&#xff08;例如&#xff0c;通过逻辑回归或朴素贝叶斯分类器得到的概率估计&#xff09;&#xff0c;那么可以通过改变不同的阈值点来利用这些预测结果画出PR曲线。 如果…

Spring系统学习 -Spring IOC 的XML管理Bean之类类型属性赋值、数组类型属性赋值、集合类属性赋值

类类型属性赋值&#xff1a; 在XML配置中&#xff0c;可以使用 <property> 元素为类类型属性赋值。通过指定属性的名称和值&#xff0c;可以直接将其他Bean的实例引用注入到目标Bean的属性中。这种方式可以建立对象之间的关联关系。例如&#xff0c;可以将一个Address对象…

python项目(豆瓣电影)

目录 1、项目效果 2、项目源码 3、技术实现 4、总结 前言 我的这个项目是做的一个豆瓣电影爬取&#xff0c;爬取了豆瓣电影的TOP排行榜的数据 包括电影的名称 演员 评分 评价人数等等 运用了TK布局助手 布了4个界面 有登录 注册 首页 详情 注意&#xff1a;项目并没有连接数…

人工智能、机器学习、深度学习:技术革命的深度解析

目录 人工智能、机器学习、深度学习&#xff1a;技术革命的深度解析 引言 第一部分&#xff1a;人工智能的起源与演进 1.1 人工智能的定义 1.2 人工智能的历史 1.3 人工智能的关键概念 1.4 人工智能的应用领域 1.5 人工智能的未来发展 1.6 人工智能的代码案例 第二部…

计划任务 周期任务计划

周期任务计划 crontab 作用&#xff1a;实现周期重复的计划任务 服务&#xff1a;crond 启动crontab的服务 service crond start 自动启动 chkconfig crond on 例子&#xff1a; * * * * * touch date \\%F.log crontab的时间表示格式&#xff1a; 分钟&#xff1a;…

[2024-06]-[大模型]-[Ollama] 0-相关命令

常用的ollama命令[持续更新中] ollama更新&#xff1a; curl https://ollama.ai/install.sh |sh带着flash attention启动&#xff1a; OLLAMA_FLASH_ATTENTION1 ollama serve停止ollama服务&#xff1a; sudo systemctl stop ollama note&#xff1a;目前遇到sudo systemctl …

IBM,开始构建以量子为中心的超级计算机

6月6日&#xff0c;IBM与Pasqal宣布了一项重大合作!IBM和Pasqal打算合作开发一种以量子为中心的超级计算的通用方法并促进化学和材料科学的应用研究。IBM和Pasqal将与高性能计算领域的领先机构合作&#xff0c;为以量子为中心的超级计算奠定基础——将量子计算与先进的经典计算…

Python报表需求处理示例

单一文件下&#xff0c;相关主题的共128张字段结构相似的表&#xff0c;对一种需求用Excel手工编辑相当麻烦&#xff0c;下面介绍一种python做自动化报表示例及代码流程。 每张表均有相同的字段结构&#xff0c;因此可对该文件下所有表格同时操作&#xff0c;大大提高了计算效率…

Milvus 2.4 向量库安装部署

1、linux 已有docker环境 2、安装fio命令 yum install -y fio 2、mkdir test-data fio --rwwrite --ioenginesync --fdatasync1 --directorytest-data --size2200m --bs2300 --namemytest ctrlc 3、lscpu 4、docker -v 6、安装docker compose组件 yum -y install python3-…

万字长文讲解如何快速搭建一个Spring Cloud项目

文章目录 概念基本概念微服务七大组件 初始化Maven父工程整合注册中心组件整合远程调用与负载均衡组件组件整合网关组件整合配置中心组件以gateway模块为例 整合分布式事务组件操作数据库模拟创建订单和扣减库存整合Seata 整合熔断降级组件整合链路追踪组件源码地址参考来源 概…

Rust : windows下protobuf和压缩传输方案

此前dbpystream库是用python开发 web api。今天在rust中试用一下protobuf。 本文关键词&#xff1a;编译器、protobuf、proto文件、序列化、zstd压缩&#xff0c;build。 一、 protobuf编译器下载 具体见相关文章。没有编译器&#xff0c;protobuf无法运行。 windows参见&am…

多年不见,我美少女又回来了!

各位&#xff0c;可能很多人都不记得我了&#xff0c;上学的时候喜欢记学习笔记&#xff0c;好多学弟学妹们经常来我的博客看笔记&#xff0c;对于学习也有帮助。 时过境迁&#xff0c;生活中的琐事和繁忙的工作&#xff0c;真的自顾不暇… 还记得之前说要转型给大家分享内容运…

量产导入 | DFT和ATE概述

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

LabVIEW程序内存泄漏分析与解决方案

维护他人编写的LabVIEW程序时&#xff0c;若发现程序运行时间越长&#xff0c;占用内存越大直至崩溃&#xff0c;通常是内存泄漏导致的。本文从多角度分析内存泄漏的可能原因&#xff0c;包括数组和字符串处理、未释放的资源、循环中的对象创建等&#xff0c;并提供具体的解决方…