C/C++每日一练(20230517) 排序问题、查找小值、寻找峰值

news2024/11/25 2:32:33

目录

1. 排序问题  🌟

2. 查找小值  🌟

3. 寻找峰值  🌟🌟

🌟 每日一练刷题专栏 🌟

Golang每日一练 专栏

Python每日一练 专栏

C/C++每日一练 专栏

Java每日一练 专栏


1. 排序问题

输入10个数,按绝对值从大到小排序输出。

输入形式:输入10个float实数
输出形式:保留小数点后两位有效数字;输出从大到小排列

以下程序实现了这一功能,请你填补空白处的内容:

```c++
#include <math.h>
#include <stdio.h>
void paixu(float *p, int n)
{
    int i, j;
    for (i = 0; i < n - 1; i++)
    {
        for (j = 0; j < n - 1 - i; j++)
        {
            if (fabs(p[j]) < fabs(p[j + 1]))
            {
                float tmp;
                _______________;
            }
        }
    }
}
int main()
{
    float f[10];
    int i;
    for (i = 0; i < 10; i++)
        scanf("%f", &f[i]);
    paixu(f, 10);
    for (i = 0; i < 10; i++)
        printf("%.2f ", f[i]);
    return 0;
}
```

出处:

https://edu.csdn.net/practice/28002599

代码:

#include <math.h>
#include <stdio.h>
void paixu(float *p, int n)
{
    int i, j;
    for (i = 0; i < n - 1; i++)
    {
        for (j = 0; j < n - 1 - i; j++)
        {
            if (fabs(p[j]) < fabs(p[j + 1]))
            {
                float tmp;
                tmp = p[j];
                p[j] = p[j + 1];
                p[j + 1] = tmp;
            }
        }
    }
}
int main()
{
    float f[10];
    int i;
    for (i = 0; i < 10; i++)
        scanf("%f", &f[i]);
    paixu(f, 10);
    for (i = 0; i < 10; i++)
        printf("%.2f ", f[i]);
    return 0;
}

输出:


2. 输入一个数查找比它小的元素

一个整型数组有10元素,请先给这10个元素赋值,然后随便输入一个数,最后输出数组中比这个数小的所有元素,每个数用空格隔开,如果没有找到,则输出not find。

以下程序实现了这一功能,请你填补空白处内容:

```c++
#include <stdio.h>
int main()
{
    int a[10], i, n;
    int isfind = 0;
    printf("please set array values:");
    for (i = 0; i < 10; i++)
        scanf("%d", &a[i]);
    printf("please enter one num:");
    scanf("%d", &n);
    for (i = 0; i < 10; i++)
    {
        ______________;
    }
    if (isfind)
        printf("\n");
    else
        printf("not find\n");
    return 0;
}
```

出处:

https://edu.csdn.net/practice/28002600

代码:

#include <stdio.h>
int main()
{
    int a[10], i, n;
    int isfind = 0;
    printf("please set array values:");
    for (i = 0; i < 10; i++)
        scanf("%d", &a[i]);
    printf("please enter one num:");
    scanf("%d", &n);
    for (i = 0; i < 10; i++)
    {
        if (a[i] < n)
        {
            isfind = 1;
            printf("%d ", a[i]);
        }
    }
    if (isfind)
        printf("\n");
    else
        printf("not find\n");
    return 0;
}

输出:


3. 寻找峰值

峰值元素是指其值严格大于左右相邻值的元素。

给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。

你可以假设 nums[-1] = nums[n] = -∞ 。

你必须实现时间复杂度为 O(log n) 的算法来解决此问题。

示例 1:

输入:nums = [1,2,3,1]
输出:2
解释:3 是峰值元素,你的函数应该返回其索引 2。

示例 2:

输入:nums = [1,2,1,3,5,6,4]
输出:1 或 5 
解释:你的函数可以返回索引 1,其峰值元素为 2;
     或者返回索引 5, 其峰值元素为 6。

提示:

  • 1 <= nums.length <= 1000
  • -2^31 <= nums[i] <= 2^31 - 1
  • 对于所有有效的 i 都有 nums[i] != nums[i + 1]

出处:

https://edu.csdn.net/practice/28002601

代码:

#include <bits/stdc++.h>
using namespace std;
class Solution
{
public:
    int findPeakElement(vector<int> &nums)
    {
        int l = 0, r = nums.size() - 1;
        while (l < r)
        {
            int mid = l + (r - l) / 2;
            if (nums[mid] > nums[mid + 1])
            {
                if (mid == 0 || nums[mid] > nums[mid - 1])
                    return mid;
                else
                    r = mid;
            }
            else
            {
                if (mid + 1 == nums.size() - 1 || nums[mid + 1] > nums[mid + 2])
                    return mid + 1;
                else
                    l = mid + 1;
            }
        }
        return l;
    }
};

int main()
{
	Solution s;
	vector<int> nums = {1,2,3,1};
	cout << s.findPeakElement(nums) << endl;
	nums = {1,2,1,3,5,6,4};
	cout << s.findPeakElement(nums) << endl;

	return 0;	
}

输出:

2
5


🌟 每日一练刷题专栏 🌟

持续,努力奋斗做强刷题搬运工!

👍 点赞,你的认可是我坚持的动力! 

🌟 收藏,你的青睐是我努力的方向! 

评论,你的意见是我进步的财富!  

 主页:https://hannyang.blog.csdn.net/

Golang每日一练 专栏

Python每日一练 专栏

C/C++每日一练 专栏

Java每日一练 专栏

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

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

相关文章

RK3588平台开发系列讲解(进程篇)Linux文件系统数据结构

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、Linux 文件系统数据结构有哪些二、超级块结构 spuer_block三、目录 dentry四、文件索引结点 inode五、打开的文件 file沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 本篇将介绍 Linux 文件系统数据结构…

深入理解MySQL中的事务和锁

目录 数据库中的事务是什么&#xff1f; MySQL事务的隔离级别 脏读、不可重复读、幻读 MVCC&#xff08;多版本并发控制&#xff09; 快照读和当前读 MySQL中的锁 MyISAM引擎的锁&#xff1a; InnoDB引擎的锁&#xff1a; 乐观锁和悲观锁 共享锁和排他锁 数据库中的事…

【STL二十】算法——排序操作(sort、stable_sort)_集合操作(merge)

【STL二十】算法——排序操作(sort、stable_sort&#xff09;_ 集合操作(merge&#xff09; 一、分类二、修改序列的操作三、排序操作1、sort2、stable_sort3、is_sorted、is_sorted_until 四、集合操作1、merge2、inplace_merge 一、分类 根据网站https://www.apiref.com/cpp…

JavaScript实现输出一个“天”字的代码

以下为实现输出一个“天”字的程序代码和运行截图 目录 前言 一、实现输出一个“天”字 1.1 运行流程及思想 1.2 代码段 1.3 JavaScript语句代码 1.4 运行截图 前言 1.若有选择&#xff0c;您可以在目录里进行快速查找&#xff1b; 2.本博文代码可以根据题目要求实现相…

【瑞萨RA系列FSP库开发】初识寄存器

文章目录 一、寄存器是什么二、瑞萨RA6M5 芯片内部模块与资源三、存储器映射1. 存储器映射表2. 存储器区域划分3. 外设寄存器 四、C语言操作寄存器1. C语言对寄存器的封装&#xff08;1&#xff09;外设模块基地址定义&#xff08;2&#xff09;寄存器结构体定义&#xff08;3&…

【LLM系列之BLOOM】BLOOM: A 176B-Parameter Open-Access Multilingual Language Model

论文题目&#xff1a;《BLOOM: A 176B-Parameter Open-Access Multilingual Language Model》 论文链接&#xff1a;https://arxiv.org/abs/2211.05100 github链接&#xff1a;https://github.com/huggingface/transformers-bloom-inference/tree/main huggingface链接&#xf…

LeetCode35. 搜索插入位置(二分法入门)

写在前面&#xff1a; 题目链接&#xff1a;LeetCode35. 搜索插入位置 编程语言&#xff1a;C 题目难度&#xff1a;简单 一、题目描述 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会…

Linkage Mapper:从栖息地连通性到物种保护的连通性指南针

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Linkage Mapper解密数字世界链接 文章目录 引言一、Linkage Mapper工具包简介1.1 什么是Linkage Mapper工具包⭐️ Linkage Mapper工具包的概述

Vite4 + Vue3 项目打包并发布Nginx服务器 (前端必看)

一、环境 &#x1f604; &#x1f604; &#x1f604; 这里因为我们有的小伙伴可能不太需要服务器&#xff0c;单纯学习的话也没有必要去买一个服务器。如果需要把自己的东西部署到公网上&#xff0c;有很多方式&#xff0c;自行百度。你也可以购买阿里云或者腾讯云。逻辑都是…

MSQL系列(二) Mysql实战-索引结构B+Tree

Mysql实战-索引结构 BTree 上一篇 我们讲解了二叉树&#xff0c;平衡二叉树&#xff0c;红黑树&#xff0c;BTree的结构及特点&#xff0c;本文我们着重讲解一下BTree&#xff0c;为什么Mysql的存储结构采用BTree而不是上面的那几种 1.BTree的缺点 我们用上篇文章中的BTree的…

第四十二天学习记录:C语言进阶:笔试题整理Ⅲ

问&#xff1a;解释一下int(*a[20])(int)是什么&#xff1f; ChatAI答&#xff1a; int (*a[20])(int) 是一个数组&#xff0c;该数组中每个元素都是一个指向函数的指针&#xff0c;该函数具有一个int类型的参数&#xff0c;并返回一个int类型的值。 具体来说&#xff0c;a是一…

宝塔服务器(linux)服务器搭建

搭建服务器 nginx 搭配 PM2( 集合了node的功能 ) 搭建服务器 域名: http://kissface.top 流程如下: 服务器既做assets文件目录挂载 , 也当做nodejs服务使用 当我访问http://kissface.top 根目录时 展示index.html文件 同时能访问静态资源如 js/css/img/font 等 当我访问 http…

Linux:初识【VI / VIM编辑器】

Linux系统版本&#xff1a;centos 7.5 x64位 VMware版本&#xff1a; VMware Workstation Pro 16 文章目录 一、VI / VIM是什么&#xff1f;1.1 VI编辑器1.2 VIM编辑器 二、为什么要使用VI / VIM编辑器&#xff1f;三、如何使用VI / VIM编辑器&#xff1f;3.1 一般模式3.2 编辑…

keil MDK5插件推荐——Astyle代码格式化插件

前言 代码格式化是提高代码质量和可读性的重要手段之一。然而&#xff0c;在Keil MDK5中并没有内置代码格式化工具&#xff0c;因此需要寻找第三方工具来解决这个问题。开源的代码格式化工具Astyle能以插件的形式集成到Keil中以满足我们对代码格式化的需求。 本文将详细介绍如…

《永恒之塔sf私服》“龙战前传”里的更高挑战-

关于这个新版本的各种更新内容已经屡见不新&#xff0c;无论是最新关注的玩家&#xff0c;抑或是一直坚守在永恒之塔阵地的老玩家们&#xff0c;相信已经对各种感兴趣的更新倒背如流。这里就不再重复。 每一款MMO游戏升级&#xff0c;伴随着玩家技术和战术的长进&#xff0c;游…

【Unity-UGUI控件全面解析】| ScrollView 滚动视图组件详解

🎬【Unity-UGUI控件全面解析】| ScrollView 滚动视图组件详解一、组件介绍二、组件属性面板三、代码操作组件四、组件常用方法示例💯总结🎬 博客主页:https://xiaoy.blog.csdn.net 🎥 本文由 呆呆敲代码的小Y 原创,首发于 CSDN🙉 🎄 学习专栏推荐:Unity系统学习…

火线、零线和地线及开关接线参考

火线、零线和地线及开关接线参考 1. 火线、零线和地线 1.1. What is Live wire? Live wire&#xff0c;L&#xff1a;火线&#xff0c;相线火线是电路中输送电的电源线。 1.2. What is Neutral wire? Neutral wire&#xff0c;N&#xff1a;零线零线是由发电机或变压器二…

AD 实现多 DC + 多 ADFS 高可用部署

总览 在本篇文章中, 我将记录部署多 DC 多 ADFS 实现高可用方案的详细步骤, 期间我会尽量使用 PowerShell 来实现相应的动作, 实在找不到命令或者 GUI 更方便的再附截图. 主要步骤分为: 部署 2 台 DC 服务器提供 AD 服务 (AD域名 alian.com)安装 ADCS 角色为 ADFS 提供证书服…

NodeJs模块化之下半部分

Node.js 中的模块化 更多精彩内容&#xff0c;请微信搜索“前端爱好者“&#xff0c; 戳我 查看 。 官网地址&#xff1a;https://nodejs.cn/api/ fs 文件系统 地址&#xff1a;https://nodejs.cn/api/fs.html#%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F node:fs 模块能够以标准…

GPT-3 面试题

简介 1、GPT-3 是什么&#xff1f;它是基于什么模型的&#xff1f; GPT-3是一种基于深度学习原理的语言预测模型。它是由OpenAI开发的&#xff0c;可以从互联网数据中生成任何类型的文本。它只需要一小段文本作为输入&#xff0c;就可以生成大量的准确和复杂的机器生成文本⁴…