zoukankan      html  css  js  c++  java
  • C语言基础五 数组

    数组跟变量的区别?

    数组是可以在内存中连续存储多个元素的结构,所有元素必须属于相同类型。

    格式:元素类型 数组名[元素个数];

    数组的特点: 只能存放单一元素的数据,里面存放的数据成为元素。

    数组的声明:声明数组的类型 ,声明数组的元素个数

    变量是可以在内存中存储一个数据的结构。

    格式: 元素类型 变量名。

    声明变量: Datatype varialename;

     定义时初始化变量:Datatype varialename= value;

    定义后初始化变量:varialename=value;

    数组的简单使用:

    初始化:int age[5]={1,2,3,4,5,};

    元素由顺序之分,每个元素都有唯一的下标(索引 ),从0开始。

    可以声明的元素个数不使用,int a[3] = {1,2}

    可以不声明元素个数:int a[] = {1, 2, 3};

    错误使用:

    int a[];无数组数据

    int[4] a;元素个数在元素名前面,JAVA语言中允许

    int a[b];不是元素类型

    a = {10, 11};没声明元素类型

    示例:

    //声明数组;数据类型 数组名[数组长度]

    int scores[5];

    //为数组赋值:数组名[下标]=值;--->下标从0开始

    scores[0]=10;

    scores[1]=20;

    scores[2]=30;

    scores[3]=40;

    scores[4]=50;

    //获取数组中的元素,数组名[下标]

    printf("%d,%d,%d,%d,%d ",scores[0], scores[1],scores[2],scores[3],scores[4] );

    //声明赋值一步完成;数据类型 数组名[长度]={值1,值2,值3}; 对应的个数应和元素个数对应

    int nums[5]={1,2,3,4,5};

    printf("%d,%d,%d,%d,%d ",nums[0],nums[1],nums[2],nums[3],nums[4]);

    int arr[10]={1,2,3,4,5};//6个元素未赋值将使用默认值0

    int arr[] = {9,8,7};//正确 ,未指定数组的长度(数组长度取决于元素的个数)

    示例:让用户输入5个成绩,根据用户输入的成绩计算最高分,最低分和平均分

    int scores[5];//声明5个用于存储用户输入的成绩

    int sun=0,avg;//总成绩,平均值

    int max,min;//最大值,最小值

    int i;

    //循环获取用户输入的成绩,并将其输入成绩保持到数组中

     for(i=0;i<5;i++){

        printf("请输入第%d个人成绩:",i+1);

        scanf("%d",&scores[i]);

       sum+=scores[i]; //计算总成绩

       }

       avg=sum/5;//计算平均成绩

       min=max=scores[0];//假设第一个人的成绩是最高分,最低分

       for(i=1;i<5;i++){

         if(scores[i]>max){//获取最高分

        max=scores[i];  

         }

         if(scores[i]<min){//获取最低分

        min=scores[i];  

         }

       }

       printf("平均分为:%d,最高分是%d,最低分%d ",avg,max,min);

     冒泡排序;由小到大

     int num[]={2,5,9,7,15};//定义一个数组,数组中可无元素个数

    int i,j,temp;//定义变量

     //外层控制比较的轮数(N-1)

     for(i=0;j<4;i++){

    //内层循环控制每轮比较的次数

    for(j=0;j<4-i;j++){

    if(num[j]>num[j+1]){//比较最大值

    temp=num[j];//使用中间变量换位置

    num[j]=num[j+1];

    num[j+1]=tem;

    }

    }

    }

    printf("排序后的数字为:");

       //利用循环遍历输出

       for(i=0;i<5;i++){

         printf("%d ",nums[i]);

       }

    二维数组可以看成由一维数组嵌套

    二维数组: 一维数组中的值为一个数组.

      声明: 数据类型 数组名[rowsize][colsize];

      int nums[5][6];

    声明并赋值:   

          int nums[4][2]={{10,11},{20,21),{30,31},{40,41}}; 正确

          int nums[][2]={{10,11},{20,21),{30,31},{40,41}}; 正确

          int nums[4][]={{10,11},{20,21),{30,31},{40,41}}; 错误

    示例:声明一个三行三列的二维数组用于保持用户输入的整型数据,打印用户输入的数据并计算对角线之和

    int num[3][3];

    int i,j,k=0;

    //循环获取用户输入的数据,并将其数据保存到二维数组中

    for(i=0;i<3;i++)

    {

    for(j=0;j<3;j++){

    printf("请输入第%d行第%d列数据 ",i+1,j+1);

       scanf("%d",&nums[i][j]);//获取用户输入值

    }

    }

      //循环遍历二维数组的数据,并打印成矩形

       for(i=0;i<3;i++){

          for(j=0;j<3;j++){

           printf("%d ",nums[i][j]);

           if(i==j){

          sum+=nums[i][j];

             }

          }

          printf(" ");

       }

    printf("二维数组对角线之和为%d",sum);

  • 相关阅读:
    win10 UWP button
    内网分享资源
    内网分享资源
    CF724F Uniformly Branched Trees
    win10 UWP FlipView
    win10 UWP FlipView
    win10 UWP FlipView
    搭建阿里云 centos mysql tomcat jdk
    搭建阿里云 centos mysql tomcat jdk
    win10 UWP 申请微软开发者
  • 原文地址:https://www.cnblogs.com/javatask/p/6591666.html
Copyright © 2011-2022 走看看