数组复习

数组复习
1 .数组:是一组具有相同类型的变量的集合。
2.一维数组

  1. 定义一维数组:首先,在定义数组时不能使用变量定义数组的大小。其次,在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.二维数组
  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感想。在做数组这一部分的题的时候,我感觉我的脑袋就是空的,因为对这方面的题根本就没有一个了解。不过,随着慢慢的进一步的了解。我对题目开始有了一些认识嗯,题目做的虽然说不顺手,哦,但是还是比一开始有所提高。

猜你喜欢

转载自blog.csdn.net/weixin_43242117/article/details/85218520