<source id="v77gz"></source>
    <u id="v77gz"><p id="v77gz"></p></u>

      <samp id="v77gz"></samp>

      <var id="v77gz"><td id="v77gz"><ins id="v77gz"></ins></td></var>

      <video id="v77gz"></video>
      <source id="v77gz"></source>
    1. 江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
      2009春二級VC上機考核2

      2009春上機2

      :改錯題

       以下程序中函數fun(int a[ ],int N)的功能是:刪除數組a的前N個元素中重復的元素,(相同的元素只保留一個),并返回所刪除元素的總數

      處理前的數組a:4  1  3  3  1  2  4  3  4  4

      處理后的數組a:4  1  3  2

      處理前的數組b:1  2  1  3  2  1  4

      處理后的數組b:1  2  3  4

      #include <iostream.h>

      int fun(int a[],int N)                  //因為函數要返回一個數值,所以要改為int

      {int c,n=0;                         //c變量保存每個數值,n變量保存重復的數值數量

        for(int i=0;i<N-n;i++){

                c=a[i];

         for(int j=i+1;j<N-n-1;j++)       //for循環首先取數值與后面的每一個數值比較,如果與后面的數值

                  if(a[j]==c){          //相同就覆蓋后面的數值,所以要N-n,不能加1,否則最后一個就比較不到

               for(int k=j;k<N-n-1;k++)  a[k]=a[k+1]; //for循環將后面數值移動到前面,覆蓋找到的重復數值

                          n++;                            //n表示找到一個重復數值

                          j++;                    //因為后面數值覆蓋了前面的重復數,所以要從這個覆蓋的位置開始    }                        // 重新比較,所以要j--,使比較從舊位置開始

        }

        return n;                              //返回有多少是重復的

      }

       

      void print(int a[],int n)            //本函數的作用是輸出傳遞來的a數組中的值

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

         cout<<a[i]<<'\t';

       cout<<endl;

      }

      void main()

      {int a[10]={4,1,3,3,1,2,4,3,4,4},b[7]={1,2,1,3,2,1,4};

       cout<<"處理前的數組a:";

       print(a,10);

       int n=fun(a,10);

       cout<<"處理后的數組a:";

       print(a,10-n);                       //10-n表示去除重復個數

       cout<<"處理前的數組b";

       print(b,7);

       n=fun(b,7);

       cout<<"處理后的數組b";

       print(b,7-n);                     //7-n表示去除重復個數

      }

      中文在线字幕第一页_中文字幕高跟丝袜作品番号_亚洲中文无无码第_日本亚洲欧美国产日韩a??y_在线观看亚洲av无码专区