鸭子tv国产极品在线观看_成人69视频在线播放_91精品免费在线观看_亚洲AT永久偷窥无码精品_国产精品自产拍在线观看涩浪潮久

江蘇省高校計(jì)算機(jī)等級(jí)考試命題研究院 江蘇省高校計(jì)算機(jī)等級(jí)考試輔導(dǎo)
2009春二級(jí)VC上機(jī)考核2

2009春上機(jī)2

:改錯(cuò)題

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

處理前的數(shù)組a:4  1  3  3  1  2  4  3  4  4

處理后的數(shù)組a:4  1  3  2

處理前的數(shù)組b:1  2  1  3  2  1  4

處理后的數(shù)組b:1  2  3  4

#include <iostream.h>

int fun(int a[],int N)                  //因?yàn)楹瘮?shù)要返回一個(gè)數(shù)值,所以要改為int

{int c,n=0;                         //c變量保存每個(gè)數(shù)值,n變量保存重復(fù)的數(shù)值數(shù)量

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

          c=a[i];

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

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

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

                    n++;                            //n表示找到一個(gè)重復(fù)數(shù)值

                    j++;                    //因?yàn)楹竺鏀?shù)值覆蓋了前面的重復(fù)數(shù),所以要從這個(gè)覆蓋的位置開始    }                        // 重新比較,所以要j--,使比較從舊位置開始

  }

  return n;                              //返回有多少是重復(fù)的

}

 

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

{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<<"處理前的數(shù)組a:";

 print(a,10);

 int n=fun(a,10);

 cout<<"處理后的數(shù)組a:";

 print(a,10-n);                       //10-n表示去除重復(fù)個(gè)數(shù)

 cout<<"處理前的數(shù)組b";

 print(b,7);

 n=fun(b,7);

 cout<<"處理后的數(shù)組b";

 print(b,7-n);                     //7-n表示去除重復(fù)個(gè)數(shù)

}