当前位置: 首页 > 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语言中字符串相关操作函数
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • 03Go 类型总结
  • Iterator 和 for...of 循环
  • JavaScript实现分页效果
  • learning koa2.x
  • Transformer-XL: Unleashing the Potential of Attention Models
  • vue数据传递--我有特殊的实现技巧
  • 半理解系列--Promise的进化史
  • 包装类对象
  • 成为一名优秀的Developer的书单
  • 坑!为什么View.startAnimation不起作用?
  • 使用parted解决大于2T的磁盘分区
  • 微信小程序开发问题汇总
  • 学习ES6 变量的解构赋值
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • #define、const、typedef的差别
  • $.ajax()参数及用法
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (16)Reactor的测试——响应式Spring的道法术器
  • (2)nginx 安装、启停
  • (4.10~4.16)
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (五)关系数据库标准语言SQL
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (转)关于pipe()的详细解析
  • (转载)从 Java 代码到 Java 堆
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .“空心村”成因分析及解决对策122344
  • .chm格式文件如何阅读
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)