陣列章節總結
陣列
一、知識點:
陣列:是一組具有相同型別的變數的組合。可用於儲存大量同類型的相關資料。也指按順序排列的一組同種型別的資料所構成的集合。一個數組在記憶體中佔一片連續的儲存空間。陣列名不僅表示名稱。而且還表示首地址。注意:陣列下標從零開始。
一維陣列的定義初始化:陣列定義後的初值仍是隨機數,一般需我們來初始化。下標越界是大忌。
二維陣列:指的是一維陣列元素的型別也是一維陣列時的情況。
對於字元陣列和字串型別:同一維陣列和二維陣列,不過要注意字元要用單引號引起來。字串要以反斜槓零結束。
二、補充:
①memset(a,0,sizeof(a))的作用是將陣列清零
②定義全域性陣列
③bool型別 可節省空間,只包含“兩面”
④預處理
三、題目總結:
自己的亮點
⑴#include<iostream>
#include<algorithm>
using namespace std;
int a[1010];
int main()
{
int n,i,j,k,m;
cin>>n;
for(i=0;i<n;i++)
{cin>>a[i];}
sort(a,a+n);
m=0;
for(i=0;i<n-2;i++)
{ for(j=i+1;j<n-1;j++)
{ for(k=j+1;k<n;k++)
{ if(a[k]==a[i]*a[j])
{m+=1;}
}
}
}
cout<<m;
}
⑵#include<iostream>
using namespace std;
bool a[10001];
int main()
{
int i,j,L,M,B,E,t;
cin>>L>>M;
for(j=0;j<=L;j++)
a[j]=1;
for(i=0;i<M;i++)
{cin>>B>>E;
for(j=B;j<=E;j++)
a[j]=0;
}t=0;
for(j=0;j<=L;j++)
{if(a[j]!=0)
t+=1;
}
cout<<t<<endl;return 0;
}
⑶#include<iostream>
#include<algorithm>
#include<math.h>
using namespace std;
int a[3001],b[3001];
int main()
{
int n,i,s;
cin>>n;
if(n==1)
cout<<"Jolly";
else
{ for(i=0;i<n;i++)
{cin>>a[i];}
for(i=0;i<n-1;i++)
{b[i]=fabs(a[i]-a[i+1]);}
sort(b,b+n-1);
s=0;
for(i=0;i<n-2;i++)
{ while(b[i+1]-b[i]==1)
{ s+=1;break;}
} if(s==n-2)
cout<<"Jolly"<<endl;
else
cout<<"Not jolly"<<endl;
}
return 0;
}
需注意的
⑴#include<iostream>
using namespace std;
int main()
{
int i,j,k,b,c,a[101][101],max,min;
for(i=1;i<=5;i++)
{for(j=1;j<=5;j++)
{cin>>a[i][j];}
}
for(i=1;i<=5;i++)
{ max=a[i][1];b=1;
for(j=1;j<=5;j++)
{if(max<=a[i][j])
{max=a[i][j];b=j;}
}
min=max;
for(k=1;k<=5;k++)
{if(min>=a[k][b])
{min=a[k][b];c=k;}
}if(max==min)
{cout<<c<<" "<<b<<" "<<min<<endl;break;}
}
if(max!=min)
cout<<"not found";}
⑵#include<iostream>
using namespace std;
int main()
{
int i,j,t,n,m;
char c[101][101]={'*','?'};
cin>>n>>m;
for(i=0;i<n;i++)
{for(j=0;j<m;j++)
{cin>>c[i][j];}
}
for(i=0;i<n;i++)
{for(j=0;j<m;j++)
{if(c[i][j]=='*')
{ cout<<"*";}
else if(c[i][j]=='?')
{ t=0;
if(c[i][j-1]=='*')t++;
if(c[i][j+1]=='*')t++;
if(c[i+1][j]=='*')t++;
if(c[i-1][j]=='*')t++;
if(c[i+1][j+1]=='*')t++;
if(c[i-1][j-1]=='*')t++;
if(c[i-1][j+1]=='*')t++;
if(c[i+1][j-1]=='*')t++;
cout<<t;}}cout<<endl;}
}