题目1 
【问题描述】 
输入一维数组,将数组中相同的数只保留一个,并输出该数组
【输入形式】 
输入数组元素个数n和相应的数组元素
【输出形式】 
输出该数组,相同的数只保留一个
【样例输入】 
input n of array:15 
input numbers of array:12 33 22 12 15 18 33 33 22 22 17 16 3 5 6
 
【样例输出】 
12    33     22     15    18    17    16    3     5     6
 
【样例说明】 
输出的每个数组元素用setw(4)设置域宽
【代码】 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 #include <iostream>  #include <iomanip>  using  namespace  std;int  main ()  {	cout<<"input n of array:" ; 	int  n,d; 	d=0 ; 	cin>>n; 	int  a[n]; 	cout<<"input numbers of array:" ; 	for (int  i=0 ; i<n; i++)       {          cin >> a[i];      } 	for (int  c=0 ;c<n;c++){           d=0 ;            	for (int  i=0 ;i<c;i++){ 		if (a[c]==a[i]){ 			d=1 ; 		} 		else {		 		} 	} 	if (d==0 ) 		{ 		cout<<setw (4 )<<a[c]; 		}      } } 
 
题目2 
【问题描述】 
输入n个数,n<=500000,每个数不超过10000,求最多连续出现了多少个相同的数。
【输入形式】 
10 
5 5 2 2 2 4 5 6 7 8
 
【输出形式】 
3
 
【样例输入】 
10 
5 5 2 2 2 4 5 6 7 8
 
【样例输出】 
3
 
【代码】 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 #include <iostream>  #include <iomanip>  using  namespace  std;int  main ()  {	int  d,h; 	int  n; 	cin>>n; 	int  a[n]; 	int  b[n]; 	for (int  i=0 ; i<n; i++)       {          cin >> a[i];      }     d=1 ;     for (int  i=0 ;i<n;i++){     	  if (a[i]==a[i+1 ])     	  {     	  	d++;     	  	b[i]=d; 			  } 		  else { 		  	d=1 ; 		  	b[i]=d; 		  }			  			   	}         h=b[0 ];       for  (int  i = 0 ; i < n; i++) 	{ 		if  (b[i]>h) 		{ 			h = b[i]; 		} 	} 	cout<<h<<endl; } 
 
题目3 
【问题描述】 
给一个整型数组中的数按从小到大连续编号,要求相同数字编号相同,编号从1开始,输出编号结果时按照原数组元素的顺序输出。
【输入形式】 
从控制台输入数据,第一行输入数组元素个数(个数大于等于1,并且小于等于20),第二行输入整型数组元素,各个整数之间以空格分隔。
【输出形式】 
在屏幕上输出编号结果,各个编号之间用一个空格分隔。
【样例输入】 
7 
-3 75 51 90 1118 51 -3
 
【样例输出】 
1 3 2 4 5 2 1
 
【样例说明】 
共输入了7个整数,分别为:-3  75  51  90  1118  51  -3,其编号分别为1  3  2  4  5  2  1,其中有两个-3和51,它们的编号相同。
【评分标准】 
该题要求输出正确的编号结果。上传C语言文件名为no.c。
【代码】 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 #include <iostream>  #include <iomanip>  using  namespace  std;int  main ()  {	int  n,m,j,k; 	cin>>n; 	int  a[n]; 	int  b[n]; 	for (int  i=0 ; i<n; i++)       {          cin >> a[i];      }          for  (int  i = 0 ; i < n;i++){         m = 9999 ;         for  (j = 0 ; j < n;j++){             if (m>a[j]&&a[j]!=10000 ){                 m = a[j];             }         }         for  (int  z = 0 ; z < n;z++){             if (a[z]==m){                 b[z] = k+1 ;                 a[z] = 10000 ;             }         }         k++;     }     for  (int  i = 0 ; i < n; i++)     {        cout<<b[i]<<" " ;     } } 
 
题目4 
【问题描述】 
重新排列一维数组元素的顺序,使得左边的所有元素均为偶数并按由大到小的次序存放,右边的所有元素均为奇数并按由小到大的次序存放。
【输入形式】 
请输入十个数据:17  15   10   14   16   17   19   18   13   12
 
【输出形式】 
数组原始数据为:17  15   10   14   16   17   19   18   13   12 
输出结果:18  16   14   12   10   13   15   17   17   19
 
【代码】 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 #include <iostream>  #include <iomanip>  using  namespace  std;int  main ()  {	int  n,i,j; 	n=10 ; 	int  a[n]; 	cout<<"请输入十个数据:" ; 	for (int  i=0 ; i<n; i++)       {          cin >> a[i];      }     cout<<"数组原始数据为:" ;         	for (int  i=0 ; i<n; i++)       {          cout<<a[i]<<"  " ;      }     cout<<endl<<"输出结果:" ;         for ( i = 0 ; i < 10 ; i++)     {         for ( j = i+1 ; j < 10 ; j++)         {             if (a[i]<a[j])                 {                 int  u;                         u = a[i];                 a[i] = a[j];                  a[j] = u;                }         }     }               for ( i = 0 ; i < 10 ; i++)     {     	if (a[i]%2 ==0 ){     		cout<<a[i]<<"  " ; 		} 	} 	 	 	 	        for ( i = 0 ; i < 10 ; i++)     {         for ( j = i+1 ; j < 10 ; j++)         {             if (a[i]>a[j])                 {                 int  p;                         p = a[i];                 a[i] = a[j];                  a[j] = p;                }         }     }     for ( i = 0 ; i < 10 ; i++)     {     	if (a[i]%2 ==1 ){     		cout<<a[i]<<"  " ; 		} 	} 	  system ("pause" );     } 
 
题目5 
【问题描述】 
从标准输入中输入两行整数(每行不超过20个整数),将第一组中所有出现在第二组中的数字删除(即两整数集相减)。并从小到大排序输出。
【输入形式】 
首先输入第一组整数的个数,再输入第一组整数,以空格分隔;然后输入第二组整数的个数,再输入第二组整数,以空格分隔。
【输出形式】 
将第一组中所有出现在第二组中的数字删除,按从小到大顺序排序输出,输出整数中间用一个空格隔开。
【样例输入】 
8 
5 1 4 3 8 7 9 6 
4 
5 2 8 10
 
【样例输出】 
1 3 4 6 7 9
 
【样例说明】 
第一组整数个数为8,分别为5 1 4 3 8 7 9 6,第二组整数个数为4,分别为5 2 8 10。将第一组中所有出现在第二组中的数字(即数字5和8)删除后结果1 3 4 6 7 9(按从小到大顺序排序)。每个数字中间用一个空格分隔。
【评分标准】 
该题要求输出整数表达式的计算结果,共有5个测试点。
【代码】 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 #include <iostream>  #include <iomanip>  using  namespace  std;int  main ()  {	int  n,m,k,z,o; 	k=o=0 ; 	cin>>n; 	int  a[n]; 	int  c[n]; 	for (int  i=0 ; i<n; i++)       {          cin >> a[i];      }     cin>>m;     int  b[m];  	for (int  i=0 ; i<m; i++)       {          cin >> b[i];      } 	  	          for (int  i=0 ; i<n; i++) {      	for (int  j=0 ; j<m; j++){      		if (a[i]==b[j]){ 			    i++; 			    c[o]=a[i]; 			 } 			else { 				c[o]=a[i]; 			}  		 } 		 o++;      }                      for (int  i=0 ; i<n; i++) {      	for (int  j=0 ; j<m; j++){ 		 if (a[i]==b[j]){ 		  		 k++; 		  		 } 		 } 		 } 		  	    for (int  i = 0 ; i < o; i++)     {         for (int  j = i+1 ; j < o; j++)         {             if (c[i]>c[j])                 {                 int  p;                         p = c[i];                 c[i] = c[j];                  c[j] = p;                }         }     }          z=n-k; 	for (int  i=0 ; i<z; i++)       {          cout<< c[i]<<" " ;      }           } 
 
代码可能略有不足,请大佬多多指教