8 月 8 日上课内容:一维数组

88 日上课内容:一维数组

一维数组的实际运用

我们先看一道题目:输入 100 个数,并倒着输出它们。

这道题我们如果用变量解,就需要定义 100 个变量,而且还不能用循环优化,这个时候就要用到数组,使 100 个数挨个放在数组里,然后再用循环挨个调用数组的下标( i )所对应的数,在进行输入输出即可。

一维数组的定义

例如,我们要将 5 个数挨个放在数组的前 5 个格子里:

1 2 3 4 5

此时我们可以用 a[i] 来分别调用它们。

注意,数组的下标是从 0 开始的:

下标 0 1 2 3 4
1 2 3 4 5

所以我们用 a[0] 调用 1a[1] 调用 2

定义:int a[数组容量];-->>int a[5]={1,2,3,4,5};//下标从 0 开始

我们通常把数组容量定义大几位,以防万一。

通常来讲,我们循环都是从 1 开始的,那么就要从 a[1] 开始调用:

下标 0 1 2 3 4 5
- 1 2 3 4 5

长度 6 (下标有 6 个)

由此可见,如果我们要从 1 (下标)开始调用,就要至少定义大一位,防止溢出。

一维数组的运用

回到最顶端的一个问题,输入 100 个数然后再倒着输出一遍:

  • 定义:int a[105];
  • 输入:for(int i=1;i<=100;i++)cin>>a[i];
  • 输出:for(int i=100;i>=1;i--)cout<<a[i]<<" ";

这样我们就简洁明了的完成了一维数组的简单学习。

一维数组的其他知识点

int main(){;} 外面定义变量、数组可以使变量、数组全部初始化。

集体赋值数组里的所有数:

memset(a,0,sizeof(a));->memset(初始化的变量名,初始化的数值,初始化的范围);

其中 sizeof(a) 是读取 a 里的内存,是初始值覆盖整个数组。

例题

题目描述

输入 n 个数,并判断 n 个数组里有多少个 k

输入格式

第一行两个整数 n,k(1 \le n,k \le 100) ,空格间隔。

第二行 n 个整数,空格间隔。

输出格式

一行表示答案。

样例 1

样例输入

5 1 
1 2 3 4 1

样例输出

2

样例 2

样例输入

5 0 
1 2 3 4 1

样例输出

0

例题解法

大概思路

先把数循环输入到数组里,然后再用循环判断 a_i 是否等于 k

带有亿点点注释的答案,并非上课的答案

#include<bits/stdc++.h>//万能头 
using namespace std;//命名空间 
int main(){
	int a[105];//数组开大一点,以防意外 
	int sum=0;//累加器初始值赋值为 0,以防随机值导致结果出错 
	int n;//n 个数 
	int k;//要找得数 
	cin>>n>>k;//输入 
	for(int i=1;i<=n;i++)cin>>a[i];//利用下标循环输入 
	for(int i=1;i<=n;i++){
		if(a[i]==k)sum++;//如果一样就计数 
	}
	cout<<sum;//输出结果 
	return 0;//好习惯 
}
5 个赞

提前发自己对于明天课程的预习,看到的同学请回复一下自己的班级

内心想法:看到快被茫茫贴海淹没了顶一顶

3 个赞

yc2406

作者,牛逼:+1:

666

原创

2 个赞

2402

牛!