一维数组的简单总结

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

创新互联是一家专注于成都做网站、成都网站设计与策划设计,诏安网站建设哪家好?创新互联做网站,专注于网站建设十载,网设计领域的专业建站公司;建站业务涵盖:诏安等地区。诏安做网站价格咨询:18982081108

           数组的需要先定义后使用,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;

                                

                          }  

                }

                    

   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


文章题目:       一维数组的简单总结
URL标题:http://myzitong.com/article/jissji.html