#GOC107725. 一维数组知识点
一维数组知识点
题目描述
思考题:
输入3个正整数,请按照与他们输入相反的顺序逆着输出这几个数。例如:输入1,3,2,输出:2,3,1.按照之前学过的内容,我们可以定义三个变量a,b,c,然后输入三个变量cin>>a>>b>>c;倒序输出三个变量:cout<<c<<b<<a;
想想看,如果不是3个数,而是50个数呢?
1、在数学中,如果要使用50个变量,那我们可以使用s1,s2,s3...s50代替,所以结合数学知识我们可以这样写:
int s1,s2,s3,s4...s50;
cin>>s1>>s2>>s3>>s4>>...>>s50;
cout<<s50<<“ ”<<s49<<“ ”<<s48<<...s1<<endl;
可是C++代码中不能用“...”代替类似代码,所以s5~s49也必须要全部写出来,所以如果单个定义变量会变得非常麻烦。
于是,我们需要学习数组。
在计算中定义相同类型的多个数据,我们可以通过数组实现,其定义格式为:
数据类型 数组名 [数组大小]; 例如:int a[50]。需要特别留意:int a[50]是定义了a[0]~a[49],并不包括a[50],相当于有50个房间,但是编号从0开始,所以只能到49号房间,因此为了防止数组溢出,我们通常会在题目要求的最大范围的基础上再加5,比如说50个变量,可以定义int a[55],数组可以开大但是不能开小,但是数组也不是无限大的,int数组最大可以开10的7次方。
1、数组大小必须是一个有确切值的常数或者变量,且数组一旦定义,其大小不能再被更改。数组名的定义和变量名的定义规则一样。
例如:int a[105];是正确的,但是int a[n];是错误的,因为n的大小未知,而数组大小必须是常数。
2、数组输入:如何输入50个整数呢?我们可以这样写。
for(int i=1;i<=50;i++)
cin>>a[i];
3、数组输出:如何用空格隔开输出50个整数呢?我们可以这样写。
for(int i=1;i<=50;i++)
cout<<a[i]<<' ';
例题:
1、输入n个同学的成绩,请输出学号a到b之间的成绩,用空格隔开。
输入格式:
第一行:三个整数n,a,b(n<1000)
第二行:输入n名同学的成绩
输出格式:
a到b之间的成绩,用空格隔开(a<b<n)
样例1:
8 3 6
45 64 32 67 24 89 58 78
32 67 24 89
参考程序:
#include<bits/stdc++.h>
using namespace std;
int n,a,b,c[1005];
int main(){
cin>>n>>a>>b;
for(int i=1;i<=n;i++){
cin>>c[i];
}
for(int i=a;i<=b;i++)
cout<<c[i]<<' ';
return 0;
}