C++012-C++一维数组

news2025/2/24 9:27:51

文章目录

  • C++012-C++一维数组
    • 一维数组
      • 目标
      • 一维数组定义
      • 一维数组初始化
      • 一维数组输入输出
      • 题目描述 车厢货物
        • **需要查看指定车厢的货物**
        • **倒着输出**
      • 题目描述 与指定数字相同的数的个数
    • 排序
      • 选择排序实现
      • 题目描述 成绩排名
        • 成绩第一名和最后一名
    • 在线练习:
    • 总结

C++012-C++一维数组

在这里插入图片描述

在线练习:
http://noi.openjudge.cn/
https://www.luogu.com.cn/

一维数组

目标

了解一维数组的基本概念
掌握一维数组的基本操作
学习选择排序的思想和程序框架

相同数据类型的元素按一定顺序排列的集合,就是把多个类型相同的变量用同一个名字命名,然后用编号区分他们的变量的集合。
这个名字称为数组名,编号称为下标,数组里面的每一个数称为数组中的元素

一维数组定义

①数据类型 数组名[数组长度];
②数据类型 数组名[数组长度] = {值1, 值2, …};
③数据类型 数组名[] = {值1, 值2, …};

int a[5];
//定义里面都是整形变量的数组a

其中,a是一维数组的数组名,该数组有5个元素,依次表示为:. a[0],a[1],a[2],a[3],a[4]//引用数组元素
需要注意的是:a[5]不属于该数组的空间范围。。严禁下标越界!!!
但是由于习惯问题,一般我们会从1号元素开始使用,所以一般我们定义数组时会比范围稍微大一些。

一维数组初始化

    int a[5];//数组元素值不确定
    
    int a[5]={0,1,2,3,4};//a[0]=0...a[4]=5
    
    int a[5]={0,1};//a[0]=0,a[1]=1,a[2]=0,a[3]=0,a[4]=0
    
    a[5]={0,1,2,3,4,5}; //写法错误,a[5]表示一个元素而不是数组

一维数组输入输出

#include <iostream>
//#include<bits/stdc++.h>

using namespace std;

int main()
{
    int a[10],n;
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>a[i];
    }
    for(int i=0;i<n;i++){
            cout<<a[i]<<" ";

    }
    return 0;
}

输出为:
在这里插入图片描述

题目描述 车厢货物

题目描述
火车车厢可以装很多货物,但是需要按照车厢进行装载,便于查找。车站站长告诉仓库各个车厢分别存放多少货物。到了下一站,需要报出所有车箱货物的数量,请写一个程序把这些数字都记录下来。(最多有100节车厢)

输入
两行。第一行一个整数n,第二行是每一节车厢中货物数量,从第1节起顺序输入;
输出
n个整数,即每一节车厢货物的数量,按照车厢编号从小到大依次输出;
样例输入
10
1 2 3 4 5 6 7 8 9 10
样例输出
1 2 3 4 5 6 7 8 9 10

#include <iostream>
//#include<bits/stdc++.h>

using namespace std;

int main()
{
    int a[110],n;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    for(int i=1;i<=n;i++){
        cout<<a[i]<<" ";

    }
    return 0;
}

需要查看指定车厢的货物

#include <iostream>
//#include<bits/stdc++.h>

using namespace std;

int main()
{
    int a[110],n,k;
    cin>>n>>k;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    cout<<a[k];
    return 0;
}

在这里插入图片描述

倒着输出

#include <iostream>
//#include<bits/stdc++.h>

using namespace std;

int main()
{
    int a[110],n;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    for(int i=n;i>=1;i--){
       cout<<a[i]<<" ";
    }

    return 0;
}

在这里插入图片描述

题目描述 与指定数字相同的数的个数

题目描述
输出一个整数序列中与指定数字相同的数的个数。

输入
输入包含三行:第一行为N,表示整数序列的长度(N <= 100);第二行为N个整数,整数之间以一个空格分开;第三行包含一个整数,为指定的整数m。
输出
输出为N个数中与m相同的数的个数。
样例输入
3
2 3 2
2
样例输出
2

#include <iostream>
//#include<bits/stdc++.h>

using namespace std;

int main()
{
    int a[110],n,m,s;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    cin>>m;
    for(int i=1;i<=n;i++){
       if(a[i]==m) s++;
    }
    cout<<s;

    return 0;
}

输出为:
在这里插入图片描述

排序

选择排序实现

使用一维数组最常见的用处就是可以对这些数字进行大小排序
数组排序先介绍数字排序最常用的方法——选择排序。所谓选择排序,就是比较当前数字,和他之后的所有数字,始终选择大的放在前面,这样所有位置都比较完毕以后,一串数字就会按照从大到小的顺序排列了。
在这里插入图片描述

#include <iostream>
//#include<bits/stdc++.h>

using namespace std;

int main()
{
    int a[110],n,t;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    for(int i=1;i<=n-1;i++){
        for(int j=i+1;j<=n;j++){
            if(a[i]<a[j]){
                t = a[i];
                a[i]=a[j];
                a[j]=t;
            }
        }
    }
    for(int i=1;i<=n;i++){
       cout<<a[i]<<" ";
    }

    return 0;
}

题目描述 成绩排名

题目描述
期末考试结束以后,需要对n位学生的成绩按照从高到第排列,一个班级最多50人。

输入
输入二行:第一行为整数n,第二行是n个学生的成绩。
输出
n个排序后的整数,从高到低输出学生成绩。
样例输入
10
1 2 3 4 5 6 7 10 8 9
样例输出
10 9 8 7 6 5 4 3 2 1

#include <iostream>
//#include<bits/stdc++.h>

using namespace std;

int main()
{
    int a[60],n,t;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    for(int i=1;i<=n-1;i++){
        for(int j=i+1;j<=n;j++){
            if(a[i]<a[j]){
                swap(a[i],a[j]);
            }
        }
    }
    for(int i=1;i<=n;i++){
       cout<<a[i]<<" ";
    }

    return 0;
}

成绩第一名和最后一名

#include <iostream>
//#include<bits/stdc++.h>

using namespace std;

int main()
{
    int a[60],n,t;
    cin>>n;
    for(int i=1; i<=n; i++)
    {
        cin>>a[i];
    }
    for(int i=1; i<=n-1; i++)
    {
        for(int j=i+1; j<=n; j++)
        {
            if(a[i]<a[j])
            {
                swap(a[i],a[j]);
            }
        }
    }

    cout<<a[1]<<" "<<a[n];

    return 0;
}

输出为:
在这里插入图片描述

在线练习:

http://noi.openjudge.cn/

总结

本系列为C++学习系列,会介绍C++基础语法,基础算法与数据结构的相关内容。本文为C++一维数组案例,包括相关案例练习。

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

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

相关文章

推荐几个好玩的AI工具和办公效率网站!

1.copymonkey.ai CopyMonkey可以帮助用户生成和优化亚马逊商品列表文案&#xff0c;分析竞争对手&#xff0c;帮助推动销售。 2.bertha.ai Bertha可以帮助用户使用AI创建高质量的营销文案和图片&#xff0c;同时&#xff0c;帮助客户优化业务流程&#xff0c;提高效率。 3.cr…

UDP端口转发

sokit是一个开源项目&#xff0c;是一个TCP / UDP 测试工具,用来接收,发送,转发TCP或UDP数据包。 项目地址: http://code.google.com/p/sokit/、https://github.com/sinpolib/sokit。 中文版下载地址&#xff1a;https://download.csdn.net/download/android_cai_niao/874728…

LeetCode_动态规划_困难_1326.灌溉花园的最少水龙头数目

目录1.题目2.思路3.代码实现&#xff08;Java&#xff09;1.题目 在 x 轴上有一个一维的花园。花园长度为 n&#xff0c;从点 0 开始&#xff0c;到点 n 结束。 花园里总共有 n 1 个水龙头&#xff0c;分别位于 [0, 1, …, n] 。 给你一个整数 n 和一个长度为 n 1 的整数数…

LC-1326. 灌溉花园的最少水龙头数目(区间合并计算问题 LC-1024、LC-55、LC-45)

区间合并计算问题 文章目录区间合并计算问题[1326. 灌溉花园的最少水龙头数目](https://leetcode.cn/problems/minimum-number-of-taps-to-open-to-water-a-garden/)贪心[1024. 视频拼接](https://leetcode.cn/problems/video-stitching/)[55. 跳跃游戏](https://leetcode.cn/p…

感知数据温度,聚焦海量冷数据存储难题

在信息科技高速发展的背景之下&#xff0c;海量数据已经让拥有者和管理者应接不暇&#xff0c;根据IDC发布的《数据时代2025》预测&#xff0c;全球数据圈&#xff08;数据圈代表每年被创建、采集或是复制的数据集合&#xff09;将从2018 年的32ZB增至2025年的175ZB。2018年&am…

【学习记录】IMU内参标定:Allan方差与代码

本文仅用于记录自己学习IMU内参标定过程中的一些总结。 参考 关于IMU参数&#xff1a; 死磕陀螺仪之(一)陀螺仪参数意义以及工程转换 关于Allan方差&#xff1a; 多传感器融合定位理论基础&#xff08;三&#xff09;&#xff1a;惯性器件误差分析 IMU噪声参数辨识-艾伦方差…

虹科方案|从 uCPE 到成熟的边缘计算平台

基于开放硬件平台&#xff0c;通用客户端设备 (uCPE) 支持快速添加、集成或删除任意数量的集中管理虚拟功能。 为了增加收入并保持竞争优势&#xff0c;托管服务提供商 (MSP) 和企业正在部署 uCPE 以增强业务敏捷性、加速新服务的引入并提高运营效率。最初&#xff0c;uCPE被部…

防护设备检测实验室建设完整方案SICOLAB

防护设备检测实验室建造布局方案SICOLAB一、防护设备检测实验室通常需要划分为几个功能区域&#xff0c;包括&#xff1a;1、样品准备区&#xff1a;用于样品的接收、处理、准备等工作&#xff0c;通常包括样品接收台、洗手池、样品切割机等设备。2、实验操作区&#xff1a;用于…

【Linux】简介以及安装(一)

目录 1. 前言 1.1 什么是Linux 1.2 为什么要学Linux 1.3 学完Linux能干什么 2. Linux简介 2.1 主流操作系统 2.2 Linux发展历史 2.3 Linux系统版本 3. Linux安装 3.1 安装方式介绍 3.2 安装VMware 3.3 安装Linux 3.4 网卡设置 3.5 安装SSH连接工具 3.6 Linux目…

Android RxJava框架源码解析(四)

目录一、观察者Observer创建过程二、被观察者Observable创建过程三、subscribe订阅过程四、map操作符五、线程切换原理简单示例1&#xff1a; private Disposable mDisposable; Observable.create(new ObservableOnSubscribe<String>() {Overridepublic void subscribe(…

堆,堆构建,堆排序,PriorityQueue和TopN问题

零. 前言 堆作为一种重要的数据结构&#xff0c;在面笔试中经常出现&#xff0c;排序问题中&#xff0c;堆排序作为一种重要的排序算法经常被问道&#xff0c;大顶堆小顶堆的应用经常出现&#xff0c;经典的问题TopN问题也是堆的重要应用&#xff0c;因此&#xff0c;了解并掌握…

Kali Linux使用(含VMVare station player安装教程)

VMware Workstation Player下载及安装配置 1.官方下载地址&#xff1a;VMvare Workstation Player 2.安装&#xff1a;基本一路点&#xff0c;需要注意的地方就是后面弄好了要重启一下&#xff0c;记得保存文件 参考&#xff1a;https://www.bilibili.com/read/cv15292839…

Codeql 编译Shiro1.2.4爬坑

0x00 前言 这个Codeql一定要编译才能生成Database&#xff0c;是真的比较恼火&#xff0c;很多项目都不一定可以生成&#xff0c;环境就是一个非常大的坑&#xff0c;为了防止以后&#xff0c;所以将shiro1.2.4编译过程进行记录。 0x01 正文 首先是需要下载到shiro1.2.4的源…

音频(九)——I2S 输出正弦波

I2S 输出正弦波 PC 端&#xff1a;先生成一个正弦波数组MCU 端&#xff1a;将正弦波数组使用 I2S 输出AP 端&#xff1a;接受从 MCU I2S 端口出来的正弦波数据并测量 THDN 等数据 PC 端生成正弦波数组 原理 三角函数的公式 yAsinxy AsinxyAsinx A 表示幅值 代码实现 源…

TCP状态详解

TCP Tcp wrappers : Transmission Control Protocol (TCP) Wrappers 为由 inetd 生成的服务提供了增强的安全性。TCP Wrappers 是一种对使用 /etc/inetd.sec 的替换方法。TCP Wrappers 提供防止主机名和主机地址欺骗的保护。欺骗是一种伪装成有效用户或主机以获得对系统进行未…

线程的基本概念

文章目录基础概念线程与进程什么是进程&#xff1f;什么是线程&#xff1f;进程和线程的区别&#xff1a;多线程什么是多线程&#xff1f;多线程的局限性串行、并行、并发同步异步、阻塞非阻塞线程的创建1、继承Thread类&#xff0c;重写run方法2、实现Runnable接口&#xff0c…

Tomcat的类加载机制

不遵循双亲委托 在JVM中并不是一次性地把所有的文件都加载到&#xff0c;而是按需加载&#xff0c;加载机制采用 双亲委托原则&#xff0c;如下图所示&#xff1a; BootStrapClassLoader 引导类加载器ExtClassLoader 扩展类加载器AppClassLoader 应用类加载器CustomClassLoad…

位姿图优化(CeresG2OGTSAM)

0. 简介 作为SLAM中常用的方法&#xff0c;其原因是因为SLAM观测不只考虑到当前帧的情况&#xff0c;而需要加入之前状态量的观测。就比如一个在二维平面上移动的机器人&#xff0c;机器人可以使用一组传感器&#xff0c;例如车轮里程计或激光测距仪。从这些原始测量值中&…

Python用selenium实现自动登录和下单的脚本

前言 学python对selenium应该不陌生吧 Selenium 是最广泛使用的开源 Web UI&#xff08;用户界面&#xff09;自动化测试套件之一。Selenium 支持的语言包括C#&#xff0c;Java&#xff0c;Perl&#xff0c;PHP&#xff0c;Python 和 Ruby。目前&#xff0c;Selenium Web 驱动…

打游戏哪种蓝牙耳机比较好?适合玩游戏的无线蓝牙耳机

2023年耳机市场一如既往地卷&#xff0c;不只是卷音质&#xff0c;还在外观和功能上做了许多的改进&#xff0c;以至于现在哪怕不懂耳机的人从各电商平台都能闭眼入一个款平价品牌耳机且极少会踩雷&#xff0c;玩游戏是当前年轻人的娱乐方式&#xff0c;下面整理了几款适合玩游…