修改密码

【2024课程】零基础学会C++编程课程

成品课程

陈远龙老师主讲 & 答疑

课程题单 - T1000

未购买 · 可先试学25节课

课程目录展开/折叠

第27课 数组(刷题课)

播放快捷键

播放/暂停:空格(或鼠标单击)      全屏:F(或鼠标双击)      退出全屏:Esc

快进10 / 30 / 60秒:方向键→ / Ctrl + 方向键→ / Shift + 方向键→

快退10 / 30 / 60秒:方向键← / Ctrl + 方向键← / Shift + 方向键←

本节课讲解配套PPT&板书:

本节课讲解到的源代码

源代码下载:第27课 数组(刷题课)-源代码下载

1. 1019同学-P1016
#include<bits/stdc++.h>
using namespace std;
int a[1000010];
int main()
{
  int n;
  cin>>n;
  for(int i=0;i<n;i++)
  {
    cin>>a[i];
  }
  for(int i=n-1;i>=0;i--)
  {
    cout<<a[i]<<" ";
  }
  return 0;
}
2. P1016-逆序一组数-1
#include <bits/stdc++.h>
using namespace std;

const int MAXN = 1e6 + 5; // 常量 一般都是大写字母表示
int a[MAXN];
// int a[1000005];
int n;

int main()
{
    // 加速C++方式的读写 cin + cout
    const char endl = '\n';
    ios::sync_with_stdio(false); // 关同步,关掉cin与stdio的同步 
    cin.tie(0);

    cin >> n;
    for (int i = 0; i < n; i ++)
    {
        cin >> a[i];
    }

    // 双指针实现逆序 i < j  i <= j  i < n / 2
    for (int i = 0, j = n - 1; i < j; i ++, j --) // i > j 停止 
    {
        // 交换i和j所指向的元素 a[i] a[j]
        swap(a[i], a[j]);
        /*
        int t = a[i];
        a[i] = a[j];
        a[j] = t;
        */
    }

    for (int i = 0; i < n; i ++)
    {
        cout << a[i] << ' ';
    }

    return 0;
}
3. P1016-逆序一组数-2
#include <bits/stdc++.h>
using namespace std;

const int MAXN = 1e6 + 5; // 常量 一般都是大写字母表示
int a[MAXN];
// int a[1000005];
int n;

int main()
{
    // 加速C++方式的读写 cin + cout
    const char endl = '\n';
    ios::sync_with_stdio(false); // 关同步,关掉cin与stdio的同步 
    cin.tie(0);

    cin >> n;
    for (int i = 0; i < n; i ++)
    {
        cin >> a[i];
    }

    // 找规律(对称规律)
    for (int i = 0; i < n / 2; i ++) 
        swap(a[i], a[n - 1 - i]);    

    for (int i = 0; i < n; i ++)
    {
        cout << a[i] << ' ';
    }

    return 0;
}
4. P1102-数组中删除一个元素-1
#include <bits/stdc++.h>
using namespace std;

int a[105];
int n;

int main()
{
    // 加速C++方式的读写 cin + cout
    const char endl = '\n';
    ios::sync_with_stdio(false); // 关同步,关掉cin与stdio的同步 
    cin.tie(0);

    cin >> n;
    for (int i = 0; i < n; i ++)
    {
        cin >> a[i];
    }

    int pos;
    cin >> pos;

    for (int i = 0; i < n; i ++)
    {
        // if (i != pos) cout << a[i] << ' ';
        if (i == pos) continue;
        cout << a[i] << ' ';
    }

    return 0;
}
5. P1102-数组中删除一个元素-2
#include <bits/stdc++.h>
using namespace std;

int a[105];
int n;

int main()
{

    cin >> n;
    for (int i = 0; i < n; i ++)
    {
        cin >> a[i];
    }

    int pos;
    cin >> pos;

    if (0 <= pos && pos <= n - 1) // 0 <= pos <= n - 1
    {
        for (int j = pos + 1; j < n; j ++)
        {
            a[j - 1] = a[j];
        }
        n --;      
    }

    for (int i = 0; i < n; i ++)
    {
        cout << a[i] << ' ';
    }

    // cout << a[n] << ' ';

    return 0;
}

本节课答疑

建议大家有问题先通过AI答疑(比如:DeepSeek 等),AI时代需要学会使用AI辅助学习

陈远龙老师视频讲解:如何使用DeepSeek进行答疑?

通过AI未能获得满意解答的,可以联系陈远龙老师答疑

目录