当前位置: 首页 > news >正文

C++ 语法基础课4 —— 数组

文章目录

  • 1. 一维数组
    • 1.1 数组的定义
    • 1.2 数组的初始化
    • 1.3 访问数组元素(通过下标访问数组)
    • 1.4 练习1:
    • 1.5 练习2
    • 1.6 练习3
    • 1.7 练习4
    • 1.8 练习4(难点)
  • 2. 多维数组
    • 2.1 练习1

1. 一维数组

1.1 数组的定义

  • 数组的定义方式和变量类似
#include<iostream>
#include<algorithm>
using namespace std;

int main()
{
	int a[10], b[20];
	float f[33];
	double d[123];
	char c[21];
	
	return 0;
}

1.2 数组的初始化

  • 在main函数内部,未初始化的数组中的元素是随机的
#include<iostream>
#include<algorithm>
using namespace std;

int main()
{
	int a[3] = {0,1,2};// 含有3个元素的数组
	int b[] = {0,1,1};// 维度是3的数组
	int c[5] = {0,1,2};// 等价于c[] = {0,1,2,0,0}
	char d[3] = {'a','b','c'};// 字符数组的初始化
	return 0}

1.3 访问数组元素(通过下标访问数组)

在这里插入图片描述

1.4 练习1:

  • 使用数组实现求斐波那契数列的第N项
#include<iostream>
#include<algorithm>
using namespace std;

int main()
{
    int n;
    int f[100];
    cin >> n;
    
    f[0] = 0, f[1] = 1;
    for(int i = 2; i <= n; i++)
    {
    	f[i] = f[i - 1] + f[i - 2];
    }
    cout << f[n] << endl;
    return 0;
}

1.5 练习2

  • 输入一个n,再输入n个整数,将这n个整数逆序输出
#include<iostream>
#include<algorithm>
using namespace std;

int main()
{
	int n;
	int a[100];
	
	cin >> n;
	for(int i = 0;i < n; i++) cin >> a[i];// 输入n个整数
	for(int i = n - 1; i >= 0; i--) cout << a[i] << ' ';
	cout << endl;
	return 0;
}

1.6 练习3

  • 输入一个n,再输入n个整数。将这个数组顺时针旋转k(k <= n)次,最后将结果输出。
#include<iostream>
#include<algorithm>
using namespace std;

int main()
{
	int n,k;
	int a[100];
	
	cin >> n >> k;
	for(int i = 0; i < n; i++) cin >> a[i];
	
	reverse(a, a + k);
	reverse(a + k,a + n);
	reverse(a, a + n);

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

1.7 练习4

  • 输入n个数,将这n个数按从小到大的顺序输出
#include<iostream>
#include<algorithm>
using namespace std;

int main()
{
	int n,k;
	int a[100];
	
	cin >> n >> k;
	for(int i = 0; i < n; i++) cin >> a[i];
	
	for(int i = 0; i < n; i++)
		for(int j = i + 1; j < n; j++)
			if(a[i] > a[j])
				swap(a[i],a[j]);

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

1.8 练习4(难点)

  • 计算2的N次方。N <= 10000
    在这里插入图片描述

2. 多维数组

  • int a[3][4]:大小为3的数组,每个元素是含有4个整数的数组。
  • int arr[10][20][30] = {0}; 将所有元素初始化为0,大小为10的数组,它的每个元素是含有4个整数的数组,这些数组的元素是含有30个整数的数组

在这里插入图片描述

2.1 练习1

  • 输入一个n行m列的矩阵,从左上角开始将其按回字形的顺序顺时针打印出来。

在这里插入图片描述

相关文章:

  • 【Pygame实战】这游戏有毒,刷爆朋友圈:小编已与病毒版贪吃蛇大战了三百回合,最高分339?
  • 软件测试 | 怎么写测试用例?设计测试用例的思路和方法......
  • shell命令以及运行原理
  • 【MySQL】 B+ 树存储的原理
  • 网络安全——SQL注入之安全狗bypass深度剖析
  • java每日一练(2)
  • C# 类实现接口(Interface) 多态 多继承
  • 量子计算(八):观测量和计算基下的测量
  • 2022年第三季度泛出行行业洞察:泛出行行业正在经历数智化升级的关键时期,用户规模保持平稳增长,行业整体良性发展
  • 配置FTP站点操作步骤—图解
  • lazada买家订单导出
  • MySQL事务管理 MVCC,隔离性详解
  • Docker入门教程(详细)
  • 免费申请Jetbrains全家桶
  • C语言中字符串相关操作函数
  • [ JavaScript ] 数据结构与算法 —— 链表
  • [译]CSS 居中(Center)方法大合集
  • 《深入 React 技术栈》
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • Idea+maven+scala构建包并在spark on yarn 运行
  • Java的Interrupt与线程中断
  • mysql常用命令汇总
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • vue-router 实现分析
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 排序算法之--选择排序
  • 移动端唤起键盘时取消position:fixed定位
  • Semaphore
  • ​ubuntu下安装kvm虚拟机
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (pytorch进阶之路)扩散概率模型
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (转)scrum常见工具列表
  • :=
  • @AliasFor注解
  • @Pointcut 使用
  • @Transactional类内部访问失效原因详解
  • []指针
  • [20140403]查询是否产生日志
  • [AMQP Connection 127.0.0.1:5672] An unexpected connection driver error occured
  • [Assignment] C++1
  • [BZOJ3757] 苹果树
  • [CareerCup][Google Interview] 实现一个具有get_min的Queue
  • [CC2642r1] ble5 stacks 蓝牙协议栈 介绍和理解
  • [ES-5.6.12] x-pack ssl
  • [HDU3710]Battle over Cities
  • [IE技巧] IE8中HTTP连接数目的变化
  • [leetcode]114. Flatten Binary Tree to Linked List由二叉树构建链表
  • [LeetCode]—Copy List with Random Pointer 深度复制带“任意指针”的链表
  • [Linux] Boot分区满了的处理方法 The volume boot has only 0 bytes disk space remaining
  • [NOI2005]月下柠檬树[计算几何(simpson)]
  • [Quartz笔记]玩转定时调度
  • [Spring]一文明白IOC容器和思想
  • [Swift]LeetCode217. 存在重复元素 | Contains Duplicate