溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

              一維數(shù)組的簡單總結(jié)

發(fā)布時間:2020-06-27 17:53:07 來源:網(wǎng)絡 閱讀:636 作者:buzhbuzh 欄目:編程語言

一     使用數(shù)組的目的:可以讓多個數(shù)據(jù)使用一個變量,用不同的下標加以區(qū)分;

           數(shù)組的需要先定義后使用,int a[10];//定義了一個長度為10,存放int型數(shù)據(jù)的數(shù)組;以下定義是錯誤的:

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

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

        int n=10;

        int a[n];//錯誤,有字母

總結(jié):[ ]中的值只能是正整數(shù)

 二 數(shù)組的引用:通過下標引用

      int a[10];這十個元素分門別為a[0]至a[9];引用時注意不要下標越界;這十個數(shù)在內(nèi)存中連續(xù)存放

三 數(shù)組的賦值:數(shù)組的賦值需要在未定義完時候進行,如 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(注意不是垃圾數(shù)據(jù));

    定義數(shù)組不聲明數(shù)組個數(shù)的時候必須賦初值,數(shù)組個數(shù)取決于初值個數(shù);

      int a[]={1,1,1};//數(shù)組個數(shù)為3

四 數(shù)組的遍歷使用for語句;

    數(shù)據(jù)在數(shù)組中存儲的三個特點:

    1.從0開始;

    2.連續(xù)存放;

    3.上述兩個特點必須動態(tài)滿足(不論刪除數(shù)據(jù)還是增加數(shù)據(jù));

五 對于數(shù)組的輸入,插入,刪除,求均值,排序的講解:

     編寫程序,對若干名同學成績進行處理,包括輸入成績,刪除成績,插入成績,求平均值,按升序排序:

     輸入成績:因為輸入學生不定,所以不能提前預知輸入的個數(shù),所以我們規(guī)定當輸入為 -1 時候結(jié)束輸入       

     程序代碼:

        printf("請輸入數(shù)據(jù)(當輸入-1時候結(jié)束):\n");

        scanf("%d", &num);

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

        {

                  score[i]=num;

                  printf("請輸入數(shù)據(jù)(當輸入-1時候結(jié)束):\n"); 

                  scanf("%d", &num);

       }              

     插入成績:插入成績分兩步完成 第一步是查找 第二步插入(找到原有成績,并將新成績插到原有成績之前)

     1.查找的第一步是找到原有成績,第二步是找到其下標i,第三步是輸入要插入的成績

     2.插入采用前插法,具體查找的過程:

         已知:插入成績 newScore

                    數(shù)組的有效元素:count

                    插入點下標: j

        插入成績的 偽代碼:

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

                    {

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

                    }

                    score[i]=newScore;

                    count;

        將倒數(shù)第二賦值給倒數(shù)第一,將倒數(shù)第三賦值給倒數(shù)第二,找到將原有插入點下標的數(shù)據(jù)賦值給后一位,留下的空位由插入點數(shù)據(jù)補充;

       3.查找的目的是找到舊成績的下標

                偽代碼:

                for(i=0;i<count&&score[i]!=oldScore;i++)

                        ;

                if(i>count)

                    printf("插入錯誤");

                else

                    ;//真正插入的代碼

        刪除成績:

            1.輸入要刪除的成績

            2.找到這個成績(從頭依次查找)

            3.刪除這個成績(將之后的成績依次提前一位)        

        

            偽代碼如下

             printf("請輸入刪除的成績:\n");

            scanf("%d" , &delescore);   

            for(i = 0; i<count&&score[i]! = delescore;i++)

                ;

            if(i>count)

                printf("未有要刪除的成績\n");

            else

             {   

                for(;i<count-1;i++)

                 {

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

                }

                

            }

     求和:相加除以人數(shù)即可:

     按升序排序:將一堆混亂的數(shù)據(jù)從新有小到大排序

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

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

                {

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

                        {

                                num = score[j];

                                score[j] =score[i];

                                score[i] = num;

                                

                          }  

                }

                    

   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI