一、引子
很久很久以前,森林里有一只猴子,一天她的妈妈(猴妈)叫他用电脑存一组数据:1,7,9,96,48,38,40,29、、、、、75,90;这只小猴天生对数学不感兴趣,于是他开始写:
#include<bits/stdc++.h>
using namespace std;
int a,b,c,d,e,f,g、、、、;
int main(){
cin>>a>>b>>c>>d>>e>>f>>g>>、、、;
return 0;
}
但这样始终太慢了,这是他的朋友聪聪来了,交给他了一封信,写道:
数组
二、认识数组
一般来说,像小猴的情况就要使用数组,接下来我为大家讲解;
1.数组是有名称和下标组成的;
a[数组大小](数组大小即a[]中的数字就是a数组所能够储存的数字的多少)
如:a[5]就只能存五个数字;
2.实质: 如图:
在图中,a所对应的下标分别对应着一个数;
假设想取某一个数 只需要:
cout<<a[某一个数];就可以;
当然,这样的输入也很简单,像这样;
#include<bits/stdc++.h>
using namespace std;
int a[100000];
int main(){
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
cout<<a[i];
}
return 0;
}
或者像这样:
#include<bits/stdc++.h>
using namespace std;
int a[100000]={1,2,3,4,5,6,7,8,9,10,9879,、、、};
int main(){
for(int i=1;i<=n;i++){//n代表总个数;
cout<<a[i];
}
return 0;
}
辨析:
a[10]={1,2,3,4,5,6,7,8,9,10};与for(int i=1;i<=10;i++) cin>>a[i];是等价的;
这就是最基础的数组;
三、上题目
首先读完题目,就知道是一个基本的对比题;
首先思考!!思路:
进行一个一个的对比;OK;上代码!
#include<bits/stdc++.h>
int n,a,b,c[34],d[8];//a数组代表小明彩票号码,b数组代表中奖号码,d数组代表中N等奖个数
using namespace std;
int main()
{
cin>>n;
for(int i=1;i<=7;i++){//7个号码
cin>>b;//输入中奖彩票号码
c[b]=1;
}
for(int i=1;i<=n;i++){//小明买了n张彩票
int sx=0;
for(int j=1;j<=7;j++){
cin>>a;//输入小明彩票号码
if(c[a]==1)sx++;
}
d[7-sx+1]++;//中7-sx+1等奖的计数器+1
}
for(int i=1;i<=7;i++){
cout<<d[i]<<" ";//输出数组
}
return 0;
}
四、二维数组;
对比:
这是一个二维数组,用b[][]表示;一共存储n*m个数据;
int b[1010][1010];
for(int i=1;i<=n;i++){
for(int j-1;j<=m;j++){
cin>>a[i][j];
}
}//输入;
接下来,话不多说上题目!!!
先思考,在做题!!
#include<iostream>
using namespace std;
int n,m;
int a[105][105];
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
}
}
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
cout<<a[j][i]<<" ";
}
cout<<endl;
}
return 0;
}
OK,解决了!
最后就是上期的答案;
#include<bits/stdc++.h>
using namespace std;
int n,s=0;
int main()
{
cin>>n;
while(n) s=s*10+n%10,n/=10;
cout<<s;
return 0;
}
课后小题:
再见!!