数组的总结

数组只能存放同一种数据类型的数据

    数组每一个元素都有一个索引号,索引号从0开始

    元素个数总共占用的字节/每个元素占用的字节

    int lengthsizeofscore/sizeofscore[0]

    对指定的索引进行赋值

    int score[5]={[3]=20,[4]=30};

    数组后面的[]中只能放整形常量或者是返回值是整形常量的表达式

      

    通过变量定义数组,如果没有对数组进行初始化,里面存放是一些垃圾数据,(随机值)

    尽量不要用变量来定义数组

    想给数组进行一次性赋值,必须在定义数组的同时

    如果定义完数组就不能对数组进行一次性赋值

       

    变量的二进制地址是从高位开始存储

    数组的地址是从地位开始存储,但是数组元素的二进制地址又是从大到小的顺序存储

    数组的地址和第0个元素的地址

    数组名就是数组的地址,打印数组地址的时候前面加或者不加&都可以


int array[10];

    int sum=0;

    

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

    {

        printf("请输入第%dBTC的价格\n",i+1);

        int k;

        scanf("%d",&k);

        array[i]=k;

        sum=sum+array[i];

    }

    printf("%d",sum);


当数组作为参数传递的时候,会自动 转换成指针类型,指针类型占用八个字节

     想在一个函数中动态计算数组的元素个数是不行的,因为指针类型只占8个字节

     所以永远只能算出8个字节的数据

     

     所以当数组要在函数中传递使用时,必须传递函数本身的地址值的同时还要必须传递函数的长度

     函数的长度lengthsizeof(ages)/sizeof(age[0])


三中排序:

1:选择排序

void selectSort(int array[],int length)

{

    for (int i=0; i<length-1; i++) {

        for (int j=i+1; j<length; j++) {

            if (array[i]>array[j]) {

                int temp=array[i];

                array[i]=array[j];

                array[j]=temp;

            }

        }

    }

 

}



2:冒泡排序

void bubbleSort(int array[],int length)

{

    for (int i=0; i<length; i++) {

        for (int j=0; j<length-1-i; j++) {

            if (array[j]>array[j+1]) {

                int temp=array[j];

                array[j]=array[j+1];\

                array[j+1]=temp;

            }

        }

    }



    

}



3:空间换时间方法排序

int main(int argc, const char * argv[])

{


   //随机输入09之间的6个数值,排序后输出

    int array[10]={0};

    int index=-1;

    

    for (int i=0; i<6; i++) {

         printf("请输入第%d个数值",i+1);

         scanf("%d",&index);

        array[index]=array[index] +1;

        

        

    }

    for (int j = 0; j < 10; j++) {

        for(int i = 1; i <= array[j] ; i++){

             printf("%d\n",j);

        }


    }

   

    return 0;

}








    

    

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值