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);

  • 相关阅读:
    (原)学习ORACLE 视图
    (原)学习ORCALE 表和约束
    下班前网上搜集的方法哈哈
    (传)Visual C# WinForm中DataGrid批量删除解决之道。
    (原)学习ORCALE索引
    用于图片切割,图片压缩,缩略图的生成(转到一个好东西)
    NET 2.0 WinForm Control DataGridView 编程36计(转)
    一些常用PLSQL语句 和事务
    温故知新的经典书评《Programming C# 》中文版第4版
    我最恐惧的事情是竞争力的丧失(转)
  • 原文地址:https://www.cnblogs.com/javatask/p/6591666.html
Copyright © 2011-2022 走看看