C语言一维数组篇【下】——每日刷题经验分享

news2024/11/27 10:34:40

一维数组篇——每日刷题经验分享~😎

  • 前言🙌
    • 有序序列插入一个整数 😊
    • 序列中删除指定数字 😊
    • 序列中整数去重
    • 小乐乐查找数字
    • 筛选法求素数
  • 总结撒花💞

追梦之旅,你我同行

   
😎博客昵称:博客小梦~
😊最喜欢的座右铭:全神贯注的上吧!!!
😊作者简介:一名热爱C/C++,算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主!

😘博主小留言:哈喽!😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不多说,文章推上!欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!😘
在这里插入图片描述

前言🙌

    哈喽各位友友们😊,我今天又学到了很多有趣的知识现在迫不及待的想和大家分享一下!😘我仅已此文,给大家分享刷题分享~ !都是精华内容,可不要错过哟!!!😍😍😍

有序序列插入一个整数 😊

描述
有一个有序数字序列,从小到大排序,将一个新输入的数插入到序列中,保证插入新数后,序列仍然是升序。
输入描述:
第一行输入一个整数N(0≤N≤50)。
第二行输入N个升序排列的整数,输入用空格分隔的N个整数。
第三行输入想要进行插入的一个整数。
输出描述:
输出为一行,N+1个有序排列的整数。

在这里插入图片描述此题解决的关键点: 😍

1、 创建多一个变量m代替n,做下面的while循环控制条件,避免for循环控制条件的失控;
2、 常规情况:先将比x大的后面元素往后移动,再将x插入。
3、 考虑特殊的情况,当插入的数据比数组中的元素都大,则将其插入到原数组最大元素的后面即可。

解题代码分享: 😍

#include <stdio.h>
int main()
{
    int n = 0;
    scanf("%d", &n);
    int arr[50] = { 0 };
    int i = 0;
    for (i = 0; i < n; i++)
    {
        scanf("%d", &arr[i]);
    }
    int x = 0;
    scanf("%d", &x);
    for (i = 0; i < n; i++)
    {

        if (arr[i] > x)
        {
            int m = n;
            while (m - i)
            {
                arr[m] = arr[m - 1];
                m--;
            }
            arr[i] = x;
            break;
        }
        if (arr[n - 1] < x)
        {
            arr[n] = x;
        }

    }
    for (i = 0; i < n + 1; i++)
    {
        printf("%d ", arr[i]);
    }
    return 0;
}

序列中删除指定数字 😊

描述
有一个整数序列(可能有重复的整数),现删除指定的某一个整数,输出删除指定数字之后的序列,序列中未被删除数字的前后位置没有发生改变。
数据范围:序列长度和序列中的值都满足 1≤n≤501≤n≤50
输入描述:
第一行输入一个整数(0≤N≤50)。
第二行输入N个整数,输入用空格分隔的N个整数。
第三行输入想要进行删除的一个整数。
输出描述:
输出为一行,删除指定数字之后的序列。

在这里插入图片描述
此题解决的关键点: 😍

1、 删除数组中的一个元素,将后面的元素往前移动覆盖,再将数组总个数减一
2、 特殊情况,当出现重复的数据时,删完一个后,要回到前一个位置,再判断,如果满足条件再删去

解题代码分享: 😍

#include <stdio.h>

int main() 
{
    int n = 0;
    scanf("%d",&n);
    int arr[50] = {0};
    int i = 0;
    for (i = 0; i < n; i++)
    {
        scanf("%d",&arr[i]);
    }
    int x = 0;
    scanf("%d",&x);
    for (i = 0; i < n; i++)
    {
        if(arr[i] == x)
        {
            for(int t=i;t<n;t++)
            {
                arr[t]=arr[t+1];//将后面数据覆盖前面的数据
            }
            n--;
        }
        if(arr[i] == x)//回到前一个位置,再判断(关键步骤)
        i--;
    }
    for (i = 0; i < n; i++)
    {
        printf("%d ",arr[i]);
    }
    return 0;
}

序列中整数去重

描述
输入n个整数的序列,要求对这个序列进行去重操作。所谓去重,是指对这个序列中每个重复出现的整数,只保留该数第一次出现的位置,删除其余位置。
输入描述:
输入包含两行,第一行包含一个正整数n(1 ≤ n ≤ 1000),表示第二行序列中数字的个数;第二行包含n个整数(范围1~5000),用空格分隔。
输出描述:
输出为一行,按照输入的顺序输出去重之后的数字,用空格分隔。

在这里插入图片描述此题解决的关键点: 😍

1、 创建一个标记变量w,将w == 1的数字打印出来,当出现重复数字时,将w 修改为0 ,不打印后面重复的数字
2、 j == i -1 循环控制条件的设置很关键,实现对i的前面元素都和i下标的元素进行比较,如果相同,则不打印

解题代码分享: 😍

#include <stdio.h>

int main() 
{
    int n = 0;
    scanf("%d",&n);
    int i = 0;
    int j = 0;
    int arr[5000] = {0};
    for (i = 0; i < n; i++)
    {
        scanf("%d",&arr[i]);
    }
    for (i = 0; i < n; i++)
    {
        int w = 1;
        for (j = i - 1; j >= 0; j--)
        {
            if(arr[i] == arr[j])
            w = 0;
        }
        if(w == 1)
        printf("%d ",arr[i]);
    }
    
    return 0;
}

小乐乐查找数字

描述
给定n个整数和一个整数x,小乐乐想从n个整数中判断x出现几次,请编程帮他实现。
输入描述:
共3行
第一行,一个整数,表示n(1 <= n <= 100)。
第二行,共输入n个整数,两个整数之间用空格分隔。
第三行,输入一个整数,表示要查找的整数x。
输出描述:
一行,表示整数x出现的次数。

在这里插入图片描述
解题代码分享: 😍

#include <stdio.h>

int main() 
{
    int n = 0;
    scanf("%d",&n);
    int arr[100] = {0};
    int i = 0;
    for (i = 0; i < n; i++)
    {
        scanf("%d",&arr[i]);
    }
    int x = 0;
    scanf("%d",&x);
    int count = 0;
    for (i = 0; i < n; i++)
    {
        if(arr[i] == x)
        count++;
    }
    printf("%d",count);
    return 0;
}

筛选法求素数

描述
用筛选法求n以内的素数。筛选法求解过程为:将2~n之间的正整数放在数组内存储,将数组中2之后的所有能被2整除的数清0,再将3之后的所有能被3整除的数清0 ,以此类推,直到n为止。数组中不为0 的数即为素数。
输入描述:
多组输入,每行输入一个正整数(不大于100)。
输出描述:
针对每行输入的整数n,输出两行,第一行,输出n之内(包括n)的素数,用空格分隔,
第二行,输出数组中2之后被清0 的个数。每行输出后换行。

在这里插入图片描述

此题解决的关键点: 😍

1、 将2 ~ n的数字存放到下标2 ~ n的数组下标中,因此数组的创建应设置为101个元素的大小,当存放100时,对应的数组下标为101。
2、 再设置两层循环,实现i 后面的所有元素跟i整除,如果为0,则将置为0。
3、最后循环输出不为0的数组元素内容
4、 0 和 1一定不是素数

#include <stdio.h>

int main() 
{
    int n = 0;
    while(scanf("%d",&n) == 1)
    {
        int arr[101];
        //将2~n的数字存放到下标2~n的数组下标中
        int i = 0;
        int j = 0;
        for (i = 2; i <= n; i++)
        {
            arr[i] = i;
        }
        int count = 0;
        for (i = 2; i <= n; i++)
        {
            for (j = i + 1; j <= n; j++)
            {
                if(arr[j] % i == 0)
                {
                    arr[j] = 0;
                }   
            }
        }
        for (i = 2; i <= n; i++)
        {
            if(arr[i] != 0)
            printf("%d ",arr[i]);
            else
            count++;
        }
        printf("\n%d\n",count);
    }
    return 0;
}

总结撒花💞

   本篇文章旨在分享C语言一维数组的刷题经验。如果大家学习了C语言一维数组的知识,则此文是非常适合大家阅读的,然后再亲自实践刷题,肯定会对知识的掌握更加的深刻,和新的理解~ 希望大家通过阅读此文有所收获!😘如果我写的有什么不好之处,请在文章下方给出你宝贵的意见😊。如果觉得我写的好的话请点个赞赞和关注哦~😘😘😘

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

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

相关文章

【FFMPEG源码分析】从ffplay源码摸清ffmpeg框架(一)

ffplay入口 ffmpeg\fftools\ffplay.c int main(int argc, char **argv) {/*******************start 动态库加载/网络初始化等**************/int flags;VideoState *is;init_dynload();av_log_set_flags(AV_LOG_SKIP_REPEATED);parse_loglevel(argc, argv, options);/* regis…

SSJ-21A AC220V静态【时间继电器】

系列型号&#xff1a; SSJ-11B静态时间继电器&#xff1b;SSJ-21B静态时间继电器 SSJ-21A静态时间继电器&#xff1b;SSJ-22A静态时间继电器 SSJ-22B静态时间继电器SSJ-42B静态时间继电器 SSJ-42A静态时间继电器SSJ-41A静态时间继电器 SSJ-41B静态时间继电器SSJ-32B静态时间继电…

dev-c++解决中文输出乱码问题

之前写c程序老是出现编译输出乱码的问题&#xff0c;就去博客&#xff0c;百度查阅了一番找了找了办法。废话不多说直接上操作。 首先打开dev-c-》工具-》编译选项 在第一行输入 -fexec-charsetgbk//生成gbk格式 -fexec-charsetUFT-8//生成UFT-8格式 也可以输入UFT-8格式&…

获取主机RDP连接凭据

为了避免每次连接服务器都进行身份验证&#xff0c;经常使用RDP的用户可能勾选保存连接凭据&#xff0c;以便进行快速的身份验证。这些凭据都使用数据保护API以加密形式存储在windows的凭据管理器中&#xff0c;路径为“%USERPROFILE%\AppData\Local\Microsoft\Credentials”执…

C语言---宏

专栏&#xff1a;C语言 个人主页&#xff1a;HaiFan. 专栏简介&#xff1a;本专栏主要更新一些C语言的基础知识&#xff0c;也会实现一些小游戏和通讯录&#xff0c;学时管理系统之类的&#xff0c;有兴趣的朋友可以关注一下。 #define预处理预定义符号define#define定义标识符…

云片验证码分析思路

本文仅供学习参考&#xff0c;又不懂的可以联系博主 目标链接: aHR0cHM6Ly93d3cueXVucGlhbi5jb20vcHJvZHVjdC9jYXB0Y2hh接口分析 captcha/get 验证码图片获取接口&#xff0c;GET请求&#xff0c;包含四个参数cb、i、k、captchaId 接口返回&#xff0c;如果是滑动验证码&…

「敏捷建模」敏捷设计理念的纪律

本文概述了敏捷软件开发团队的设计策略。这些策略对于扩展敏捷软件开发以满足现代IT组织的实际需求至关重要。敏捷的设计方法与传统方法截然不同&#xff0c;显然也更有效。重要的是要了解&#xff1a; 敏捷设计实践 敏捷设计理念 整个敏捷生命周期的设计 1.敏捷设计实践 从高…

大数据概述

一、大数据时代 大数据时代 三次信息化浪潮&#xff1a;个人计算机80年-互联网95年-物联网、云计算和大数据(2010年) 发展时间较短&#xff0c;大数据人才缺失大数据人才 培训出来的&#xff1a;Java-》大数据 优点&#xff1a;对于大数据技术的细节会比较清楚 缺点&#xff1…

为什么Redis集群的最大槽数是16384个?

对于客户端请求的key&#xff0c;根据公式HASH_SLOTCRC16(key) mod 16384&#xff0c;计算出映射到哪个分片上&#xff0c;然后Redis会去相应的节点进行操作&#xff01; 为什么有16384个槽&#xff1f; Redis集群并没有使用一致性hash而是引入了哈希槽的概念。Redis 集群有16…

金仓数据库事务日志与检查点

事务日志与检查点 WAL文件&#xff0c;在金仓数据库中&#xff0c;事务日志文件称为Write Ahead Log&#xff08;预写式日志&#xff0c;简称WAL&#xff09;。 WAL存储了数据库系统中所有更改和操作的历史&#xff0c;相当于Oracle的REDO。 WAL机制是在这个写数据的过程中加…

[Android开发基础4] 意图与意图过滤器

文章目录 意图&#xff08;Intent&#xff09; 简介 显式意图 隐式意图 意图过滤器&#xff08;IntentFiler&#xff09; action data category 意图&#xff08;Intent&#xff09; 简介 Intent被称为意图&#xff0c;是程序中各组件进行交互的一种重要方式&#xff0c…

第四章.误差反向传播法—简单层的实现(加法层(AddLayer)+乘法层(MulLayer))

第四章.误差反向传播法 4.1 简单层的实现 本章主要讲述的是加法层(AddLayer)和乘法层(MulLayer)的实现过程。 1.加法层(AddLayer) 从正向传播和反向传播两个层面进行分析。 1).示例&#xff1a; 以zxy为对象&#xff0c;观察它的传播。zxy的导数&#xff1a;∂z/∂x1,∂z/∂…

从CNN到Transformer:基于PyTorch的遥感影像、无人机影像的地物分类、目标检测、语义分割和点云分类

我国高分辨率对地观测系统重大专项已全面启动&#xff0c;高空间、高光谱、高时间分辨率和宽地面覆盖于一体的全球天空地一体化立体对地观测网逐步形成&#xff0c;将成为保障国家安全的基础性和战略性资源。随着小卫星星座的普及&#xff0c;对地观测已具备多次以上的全球覆盖…

DVWA靶场通关和源码分析

文章目录一、Brute Force1.low2、medium3、High4、Impossible二、Command Injection1、Low2、Medium3、High三、CSRF1、Low2、Medium3、High4、Impossible四、File Inclusion1、Low2、Medium3、High五、File Upload1、Low2、Medium3、High4、Impossible六、 SQL注入1、Low2、Me…

关于catkin的一些笔记以及资料连接

大佬们早就不用catkin_make编译节点了&#xff0c;快来瞅瞅他们使用的啥 https://zhuanlan.zhihu.com/p/399753815 https://catkin-tools.readthedocs.io/en/latest/index.html# ROS 编译系统 catkin 详解 https://www.jianshu.com/p/7fccfe18d7d3 ROS学习笔记&#xff08;六…

【20230206-0209】哈希表小结

哈希表一般哈希表都是用来快速判断一个元素是否出现在集合里。哈希函数哈希碰撞--解决方法&#xff1a;拉链法和线性探测法。拉链法&#xff1a;冲突的元素都被存储在链表中线性探测法&#xff1a;一定要保证tableSize大于dataSize&#xff0c;利用哈希表中的空位解决碰撞问题。…

linux性能优化-内存buffer/cache区分

# 注意不同版本的free输出可能会有所不同 $ freetotal used free shared buff/cache available Mem: 8169348 263524 6875352 668 1030472 7611064 Swap: 0 0 0本文目的用来区分free中…

linux——守护进程守护刷抖音程序不被意外退出

先搞清楚几个概念&#xff1a;udev:设备管理工具&#xff0c;以守护进程的方式工作。位于应用层&#xff0c;主要用于监听内核硬件状态&#xff0c;它能够根据系统中的硬件设备的状态动态更新设备文件&#xff0c;包括设备文件的创建&#xff0c;删除等守护进程&#xff1a;守护…

vue 最详细教学篇(三)

文章目录vue2-cli 项目文件分析示例项目解析router-linkrouterrouter-viewmain.jspackage.jsonvue2-cli 项目 vue-cli>> 文件分析 从上图分析项目文件 1. node_modules // npm 所有下载文件包都在里面 2. public // 根目录文件, 存放index.html和一些脚本文件 3. sr…

CSDN每日一练:小桥流水人家

题目名称&#xff1a;小桥流水人家 时间限制&#xff1a;1000ms内存限制&#xff1a;256M 题目描述 在n*m的地图上&#xff0c;存在一个喷水点(x,y). 如果相邻的位置低于有水的地方&#xff0c;水就能流到相邻的某位置。 已知各个地方的海拔高度&#xff0c;求水的最大覆盖个格…