一维数组的简单总结-创新互联

一     使用数组的目的:可以让多个数据使用一个变量,用不同的下标加以区分;

创新互联2013年至今,先为乌拉特中等服务建站,乌拉特中等地企业,进行企业商务咨询服务。为乌拉特中企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

           数组的需要先定义后使用,int a[10];//定义了一个长度为10,存放int型数据的数组;以下定义是错误的:

       int a[a+1];//不能有表达式

        int  b[n];//不能有字母

        int n=10;

        int a[n];//错误,有字母

总结:[ ]中的值只能是正整数

 二 数组的引用:通过下标引用

      int a[10];这十个元素分门别为a[0]至a[9];引用时注意不要下标越界;这十个数在内存中连续存放

三 数组的赋值:数组的赋值需要在未定义完时候进行,如 int a[10]={1,2,4};不可以写成 :

     int a[10];

     a[10]={1,2};

     int a[10]={1,2};//不完全赋值,a[0]到a[1]值分别为1,2,其余均为0(注意不是垃圾数据);

    定义数组不声明数组个数的时候必须赋初值,数组个数取决于初值个数;

      int a[]={1,1,1};//数组个数为3

四 数组的遍历使用for语句;

    数据在数组中存储的三个特点:

    1.从0开始;

    2.连续存放;

    3.上述两个特点必须动态满足(不论删除数据还是增加数据);

五 对于数组的输入,插入,删除,求均值,排序的讲解:

     编写程序,对若干名同学成绩进行处理,包括输入成绩,删除成绩,插入成绩,求平均值,按升序排序:

     输入成绩:因为输入学生不定,所以不能提前预知输入的个数,所以我们规定当输入为 -1 时候结束输入       

     程序代码:

        printf("请输入数据(当输入-1时候结束):\n");

        scanf("%d", &num);

        for(i=0;i!=num;i++)

        {

                  score[i]=num;

                  printf("请输入数据(当输入-1时候结束):\n"); 

                  scanf("%d", &num);

      }      

     插入成绩:插入成绩分两步完成 第一步是查找 第二步插入(找到原有成绩,并将新成绩插到原有成绩之前)

     1.查找的第一步是找到原有成绩,第二步是找到其下标i,第三步是输入要插入的成绩

     2.插入采用前插法,具体查找的过程:

         已知:插入成绩 newScore

                    数组的有效元素:count

                    插入点下标: j

        插入成绩的 伪代码:

                    for(i=count;i>j;i--)

                    {

                        score[i]=score[i-1];

                    }

                    score[i]=newScore;

                    count;

        将倒数第二赋值给倒数第一,将倒数第三赋值给倒数第二,找到将原有插入点下标的数据赋值给后一位,留下的空位由插入点数据补充;

       3.查找的目的是找到旧成绩的下标

                伪代码:

                for(i=0;i

                        ;

                if(i>count)

                    printf("插入错误");

                else

                    ;//真正插入的代码

        删除成绩:

            1.输入要删除的成绩

            2.找到这个成绩(从头依次查找)

            3.删除这个成绩(将之后的成绩依次提前一位)        

        

            伪代码如下

             printf("请输入删除的成绩:\n");

            scanf("%d" , &delescore);   

            for(i = 0; i

                ;

            if(i>count)

                printf("未有要删除的成绩\n");

            else

             {   

                for(;i

                 {

                        score[i]=score[i+1];

                }

                

            }

     求和:相加除以人数即可:

     按升序排序:将一堆混乱的数据从新有小到大排序

        for(i = 0;i < count ;i++)//控制放置最小的数字

            for(j = i+1;j < count ;j++)

                {

                        if(score[i] >score[j])//将小的放前面

                        {

                                num = score[j];

                                score[j] =score[i];

                                score[i] = num;

                                

                          }  

                }

                    

   

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


本文名称:一维数组的简单总结-创新互联
浏览地址:http://myzitong.com/article/cdjdci.html