数组复习
1 .数组:是一组具有相同类型的变量的集合。
2.一维数组
- 定义一维数组:首先,在定义数组时不能使用变量定义数组的大小。其次,在c语言中,数组的下标都是从零开始。
例如,
#include<stdio.h>
#define size=5;
int score[size];
int main()
{ for(int i=0;i<5;i++)
{ scanf(“%d”,&score[i]);}
……
2)一维数组的初始化
int a[5]={1,2,3,4,5}
int a[]={1,2,3,4,5}
int a[5]={0}
2.二维数组 - 定义二维数组 :在定义二维数组时,要用两层循环
一般格式:类型 数组名[第一维长度][第二维长度]
例如,for(i=0;i<n;i++){
for(j=0;j<n;j++){
scanf("%d",a[i][j])}}
注意数组第二维的长度声明永远都不能忽略。
2)二维数组的初始化。
b[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}
b[][4]={1,2,3,4,5,6,7,8,9,10,11,12}
3.解决的问题。
1)两个数组相等。
使用循环进行。
例如,for(i=0;i<n;i++){
b[i]=a[i];}
2)排序问题。
冒泡排序。
int main()
{
int i,j,temp;
int a[10];
for(i=0;i<10;i++)
scanf ("%d,",&a[i]);
for(j=0;j<=9;j++){
for (i=0;i<10-j;i++)
if (a[i]>a[i+1]
temp=a[i];a[i]=a[i+1];
a[i+1]=temp;}}
for(i=1;i<11;i++)
printf("%5d,",a[i] );
printf("\n");}
3)典型例题:校门外的树
某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。#include<stdio.h>
int main(){
int L,M,p[10001],a,b;
int num=0;
scanf("%d %d",&L,&M);
for(int i=0;i<=L;++i)
p[i]=1;
for(int i=1;i<=M;++i) {
scanf("%d %d",&a,&b);
for(int i=a;i<=b;++i)
p[i]=0; }
for(int j=0;j<=L;++j) {
if(p[j]; ++num; }
printf("%d",num);}
4感想。在做数组这一部分的题的时候,我感觉我的脑袋就是空的,因为对这方面的题根本就没有一个了解。不过,随着慢慢的进一步的了解。我对题目开始有了一些认识嗯,题目做的虽然说不顺手,哦,但是还是比一开始有所提高。