一維數組的簡單總結

一     使用數組的目的:可讓多個數據使用一個變量,用不一樣的下標加以區分;數組

           數組的須要先定義後使用,int a[10];//定義了一個長度爲10,存放int型數據的數組;如下定義是錯誤的:ide

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

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

        int n=10;內存

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

總結:[ ]中的值只能是正整數class

 二 數組的引用:經過下標引用變量

      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<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];

                }

                

            }

     求和:相加除以人數便可:

     按升序排序:將一堆混亂的數據重新有小到大排序

        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;

                                

                          }  

                }

相關文章
相關標籤/搜索