zoukankan      html  css  js  c++  java
  • C语言之数组

    一、 数组的基本概念

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

    二、 数组的特点

    • 只能存放一种类型的数据,比如int类型的数组、float类型的数组
    • 里面存放的数据称为“元素”

    三、  声明和使用数组

    • 声明数组的类型
    • 声明数组的元素个数(需要多少存储空间)

    1) 格式

    元素类型 数组名[元素个数];

    比如:int ages[3];

    2) 简单使用

    简单初始化:int ages[5] = {19, 19, 20, 21, 25};

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

    数组元素的访问:a[i]

    3) 初始化

    初始化方式

    int a[3] = {10, 9, 6};

    int a[3] = {10,9};

    int a[] = {11, 7, 6};

    l 常见错误

    int a[];

    int[4] a;

    int a[b];

    a = {10, 11};

    a[4] = {10,9,8,5};

    示例:

    //声明数组: 数据类型 数组名[数组长度] ;
        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....};注意:对应的值的个数应该与长度对应
       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] = {9,8,7,5};//正确,6个元素未赋值将使用默认值(0)!!!! 
       int arr[] = {9,8,7};//正确 ,未指定数组的长度(数组长度取决于元素的个数)

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

       int scores[5];//声明一个数组用于存储用户输入的成绩 
       int sum=0,avg;//总成绩和平均成绩 
       int max;//最高分 
       int 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);
    • 二维数组可以看作是由一维数组的嵌套而构成的

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

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

          int nums[4][2];

    声明并赋值:   

          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 nums[3][3];
       int i,j,sum=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);
  • 相关阅读:
    Elementary Methods in Number Theory Exercise 1.2.25
    Elementary Methods in Number Theory Exercise 1.2.14
    图解欧几里德算法
    图解欧几里德算法
    Elementary Methods in Number Theory Exercise 1.2.14
    Android中的长度单位详解(dp、sp、px、in、pt、mm)
    分享下多年积累的对JAVA程序员成长之路的总结
    android异常之都是deamon惹的祸The connection to adb is down, and a severe error has occured.
    TomatoCartv1.1.8.2部署时报错
    JavaScript浏览器对象之二Document对象
  • 原文地址:https://www.cnblogs.com/xiaomeng7/p/6612903.html
Copyright © 2011-2022 走看看