正文

选票问题2007-03-28 16:32:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/wwwzrccom/24351.html

分享到:

#include <iostream.h>#include <stdlib.h>#include <string.h>   const int defaultsize=30;const int n=10;struct person {    char name;    int count ;} leader [n];template <class type> class array{public:  array( type b[ ],int n );            //构造函数  ~array( ){ delete [ ] a ; }    //析构函数  int arraymin (int n)                 //求数组中的最小值  { int min=a[0];    for (int i=1; i<n; i++)     if (a[i]<min) min=a[i];    return min;  }                     void election(int n )               //选票统计算法  {  char nam;     cin>>nam;     while (nam!='#')  {  for( int i=0;i<n; i++)        if (a[i].name==nam) a[i].count++;         cin>>nam;  }  for(int i=0;i<n; i++)  cout<<a[i].name<<"得票数:"<<a[i].count<<endl;  }    int find (int n, int k );           //顺序查找算法  type bubblesort(int n, int k );      //起泡排序算法  type selectsort (int n, int k );     //选择排序算法private:   type *a;                            //数组   int arraysize;                      //元素的个数 };  template <class type>array<type>:: array( type b[ ],int n )  {  arraysize=n;     a=new type[n];  for( int i=0; i<arraysize; i++)     a[i]=b[i] ;}void main( ) {  int b[10]={ 56,23,12,90,67,45,89,34,1,100 };            array< int > x(b,10);    cout <<x.arraymin(10)<<endl;    person c[10];           c[0].name='a';c[0].count=0;c[1].name='b';c[1].count=0;        c[2].name='c';c[2].count=0;c[3].name='d';c[3].count=0;     c[4].name='e';c[4].count=0;c[5].name='f';c[5].count=0;     c[6].name='g';c[6].count=0;c[7].name='h';c[7].count=0;     c[8].name='i';c[8].count=0;c[9].name='j';c[9].count=0;    array< person >y(c,10);    y.election(10 );       }  int arraymin(int a[],int n){  int min ,i; min=a[0]; for(i=1;i<n;i++)  if(a[i]<min)min=a[i]; return min;}void election(person leader[],int n){ char name; cin>>name; while(name!='#') {  for(int i=0;i<n;i++){   if(leader[i].name==name)    leader[i].count++;   cin>>name;  } } for(int i=0;i<n;i++)  cout<<leader[i].name<<"得票数为:"<<leader[i].count<<endl;}int find(int a[],int n,int k){ int count=0; for(int i=0;i<n;i++)  if(++count&&a[i]==k)break; cout<<"比较次数为:"<<count<<endl; return i;}template<class t>t bubblesort(t r[],int n,t k){ for(i=1;i<n;i++)  for(j=0;j<n-i;j++)   if(r[j]>r[j+1]){    temp=r[j];    r[j]=r[j+1];    r[j+1]=temp;   }   return r[k-1];}template<class t>t selectsort(t r[],int n,t k){ for(i=0;i<k;i++) {  index=i;  for(j=i+1;j<n;j++)   if(r[j]<r[index])index=j;  if(index!=i){   temp=r[j];   r[j]=r[index];   r[index]=temp;  } }  return r[k-1]; }  

阅读(2003) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册