<samp id="uu9tx"></samp>
        <samp id="uu9tx"><tr id="uu9tx"><nav id="uu9tx"></nav></tr></samp>
        <delect id="uu9tx"><legend id="uu9tx"><meter id="uu9tx"></meter></legend></delect>
                <samp id="uu9tx"><tr id="uu9tx"><meter id="uu9tx"></meter></tr></samp><nav id="uu9tx"></nav>
                <samp id="uu9tx"></samp>
                  <samp id="uu9tx"><tr id="uu9tx"><meter id="uu9tx"></meter></tr></samp>
                  江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
                  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表示去除重復個數

                  }

                  亚洲欧美日韩国产一区二区三区_全亚洲免费一级黄片_国产一区二区三区不卡视频手机版_国产污三级网站在线观看