首页 > 编程语言 > 详细

2_C语言中的数据类型 (九)数组

时间:2017-01-24 21:58:31      阅读:280      评论:0      收藏:0      [点我收藏+]

1          数组

1.1       一维数组定义与使用

   int array[10];//定义一个一维数组,名字叫array,一共有10个元素,每个元素都是int类型的

 

   array[0] = 20;

   array[1] = 30;

   array[9] = 80;

 

   //array[10] = 100;//错误,没有 array[10]这个元素

 

1.2       数组在内存的存储方式

数组在内存中就是一段连续的空间,每个元素的类型是一样的

 

1.3       一维数组初始化

int array[10] = { 100, 1, 5, 3, 4, 5, 6, 7, 8, 0 };//定义数组的同时为数组的成员初始化值

int array[10] = { 3, 7, 9 };//将数组的前三个元素赋值,其余元素置为0

int array[10] = { 0 };//将数组所有的元素都置为0

   int i;

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

   {

      array[i] = 0;//通过循环遍历数组的每个元素,将元素的值置为0

   }

 

1.4       二维数组定义与使用

int array[2][3];//定义了一个二维数组,有两个array[3]

 

1.5       二维数组初始化

 

int a[3][4] = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } };

 

#include <stdio.h>

#pragma warning(disable:4996)

int main01()
{
    short array[10];//定义一个一维数组,名字叫array,一共有10个元素,每个元素都是int类型的

    array[0] = 20;
    array[1] = 30;
    array[9] = 80;

    //array[10] = 100;//错误,没有 array[10]这个元素

    printf("%d\n", array[1]);


    int i;
    for (i = 0; i < 10; i++)
    {
        array[i] = i;//array[0] = 0;, array[1] = 1, array[9] = 9;
    }

    printf("%p\n", array);

    return 0;
}

int main02()//数组初始化
{
    //int array[10] = { 100, 1, 5, 3, 4, 5, 6, 7, 8, 0 };//定义数组的同时为数组的成员初始化值
    //int array[10] = { 3, 7, 9 };//将数组的前三个元素赋值,其余元素置为0
    int array[10] = { 0 };//将数组所有的元素都置为0



    //printf("%p\n", array);
    int i;
    for (i = 0; i < 10; i++)
    {
        scanf("%d", &array[i]);// = 0;//通过循环遍历数组的每个元素,将元素的值置为0
    }


    for (i = 0; i < 10; i++)
    {
        printf("array[%d] = %d\n", i, array[i]);
    }
    return 0;
}

int main03()//求数组中最大元素的值,和最大值对应的数组下标
{
    int array[10] = { 32, 45, 643, 12, 56, 2000, 78, 22, 69, 10 };
    int max = array[0];
    int i;
    for (i = 1; i < 10; i++)//想找最大的值,一定要把数组先遍历一遍
    {
        if (max < array[i])
            max = array[i];
    }
    printf("max = %d\n", max);
    return 0;

}

int main04()//求数组中最小元素的值,和最小值对应的数组下标
{
    int array[10] = { 32, 45, 643, 12, -56, 2000, 78, 22, 69, 10 };
    int min = array[0];
    int index = 0;//在没有遍历数组之前,默认数组的第0号元素就是最小的元素
    int i;
    for (i = 1; i < 10; i++)//想找最小的值,一定要把数组先遍历一遍
    {
        if (min > array[i])
        {
            index = i;
            min = array[i];
        }
    }
    printf("min = %d, index = %d\n", min, index);
    return 0;

}

int main05()//求数组中所有元素的和
{
    int array[10] = { 31, 5, 43, 12, 6, 2, 8, 21, 3, 10 };
    
    int i;
    int sum = 0;//存放数组和的变量
    for (i = 0; i < 10; i++)
    {
        sum += array[i];
    }
    printf("sum = %d\n", sum);
    return 0;

}

int main06()//求数组中大于平均数的元素和下标
{
    int array[10] = { 31, 5, 43, 12, 6, 2, 8, 21, 3, 10 };

    int i;
    int sum = 0;//存放数组和的变量
    for (i = 0; i < 10; i++)
    {
         sum += array[i];
    }
    int avg = sum / 10;
    printf("avg = %d\n", avg);

    for (i = 0; i < 10; i++)
    {
        if (array[i] > avg)
        {
            printf("%d, %d\n", array[i], i);
        }
    }
    return 0;

}

int main()//将数组元素逆置,
{
    int array[10] = { 31, 5, 43, 12, 6, 2, 8, 21, 3, 10 };

    //

    //int tmp = array[1];//中间变量实现两个值的互换
    //array[1] = array[0];
    //array[0] = tmp;


    int min = 0;//数组最小下标
    int max = 9;//数组的最大下标
    while (min < max)//两头往中间堵
    {
        int tmp = array[min];
        array[min] = array[max];
        array[max] = tmp;
        min++;
        max--;
    }


    int i;
    //for (i = 0; i <= 4; i++)//从头往中间走
    //{
    //    int tmp = array[i];
    //    array[i] = array[9 - i];
    //    array[9 - i] = tmp;
    //}


    for (i = 0; i < 10; i++)
    {
        printf("array[%d] = %d\n", i, array[i]);
    }
    return 0;
}

资料来源:传智播客 仅供学习研究

2_C语言中的数据类型 (九)数组

原文:http://www.cnblogs.com/wuchuanying/p/6347837.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!