源码阅读:排序及其他

作者在 2011-03-24 12:32:21 发布以下内容
/*请编写程序, 该程序的功能是:对于一维整型数组,输入数组元素, 并删去数组中所有相同的数,
使各个元素均不相同。
思路:把数组中元素按顺序排列(如从小到大),然后进行操作。*/
#include<iostream>
#define num 6
using namespace std;
void sort(int a[],int n);
int fun(int a[],int n); 
int main()
{
 int i,n,a[num];
 for(i=0;i<num;i++)
  cin>>a[i];
 cout<<endl<<"************"<<endl;
 sort(a,num);      //排列数组
 for(i=0;i<num;i++)
  cout<<a[i]<<" ";     //输出排列后的数组
 cout<<endl<<"************"<<endl;
 n=fun(a,num);   //筛选不同元素,并把元素个数赋给n
 for(i=0;i<n;i++)
  cout<<a[i]<<" ";   //输出筛选后的元素
 return 0;
}
//下面的函数把数组从小到大排列
void sort(int *a,int n)
{
 int i,j,tmp;
 for(i=0;i<n-1;i++)
  for(j=0;j+1<n-i;j++)
   if(a[j]>a[j+1])
   {
    tmp=a[j];
    a[j]=a[j+1];
    a[j+1]=tmp;
   }
    
}
//下面的函数选出各个不同的元素,并返回整理后的数组元素个数
int fun(int *a,int n)
{
 int temp,i,j=0;
 temp=a[0];
 for(i=1;i<n;i++)  
 {
  if(a[i]==temp)
   continue;
  else a[++j]=a[i];
  temp=a[i];
 }
 return j+1;
}
(我学的是C,这几天读了一些有关C++的知识,发现用他写程序要简便一些,所以就以C++写了这段代码
希望对路人有帮助
默认分类 | 阅读 926 次
文章评论,共0条
游客请输入验证码
浏览71079次
最新评论