| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 579 人关注过本帖
标题:刚学C++ 求问个 程序 谢谢!
只看楼主 加入收藏
chenghan818
Rank: 2
等 级:论坛游民
帖 子:27
专家分:22
注 册:2011-5-21
结帖率:37.5%
收藏
已结贴  问题点数:10 回复次数:1 
刚学C++ 求问个 程序 谢谢!
/*------------------------------------------------------------------------
Name:CHENG HAN
Data:11-10-27
Function:排序查找(用选择法对 15 个整数按从大到小的顺序排序再用折半查找)
------------------------------------------------------------------------*/
#include<iostream>
using namespace std;
int i,j;
class found{
public:
      void paixu(int a[]) //定义一个函数paixu对15个数选择排序
       {
          int temp,min;
          for(i=0;i<15;i++)
          {  min=i;            
          for (j=i+1;j<15;j++)
              if(a[j]<a[min])
                 min=j;    //对i之后的数进行扫描将最小的数赋予min
             if(min!=i)   //判断min与i是否相等,若=则说明原假设正确反之交换数值
             {temp=a[i];
              a[i]=a[min];
              a[min]=temp;}
          }
      }
      int  find(int a[],int n) //定义一个函数find用折半法查找数组中的元素
      {   
          int low=0,high=14,pos;
          while(low<=high )
          {
           pos=(high + low)/2;
           if(a[pos]==n) return pos+1;
           if(a[pos]<n)
           {
             low=pos+1;
           }
           else
           {
             high=pos-1;
           }
          }
         return -1;
}
};
      int main()
      {   found A;
           int a[15]={0};
           int  n;
          cout<<"please input a[15]:"<<endl;
          for(i=0;i<15;i++)
              cin>>a[i];
           A.paixu(a);
           for(i=15;i>0;i--)
              cout<<a[i];
           cout<<"please input n:"<<endl;
           cin>>n;
           cout<<"it is di "<<A.find(a,n)<<" ge shu"<<endl;
           return 0;
      }
搜索更多相关主题的帖子: found public include 
2011-10-29 20:21
YueWuSS
Rank: 2
等 级:论坛游民
帖 子:15
专家分:96
注 册:2011-10-29
收藏
得分:10 
回复 楼主 chenghan818
//程序改变如下
//修改部分已加为红色/*------------------------------------------------------------------------
 /*------------------------------------------------------------------------
 Name:CHENG HAN
 Data:11-10-27
 Function:排序查找(用选择法对 15 个整数按从大到小的顺序排序再用折半查找)
 ------------------------------------------------------------------------*/
 #include<iostream>
 using namespace std;
 int i,j;
 class found{
 public:
     void paixu(int a[]) //定义一个函数paixu对15个数选择排序
     {
         int temp,min;
         for(i=0;i<15;i++)
         {
             min=i;
             for (j=i+1;j<15;j++)
             {
                 if(a[j]>a[min])  //此排序是由大到小,应将 '< '-> '>'
                     min=j;    //对i之后的数进行扫描将最小的数赋予min
                 if(min!=i)   //判断min与i是否相等,若=则说明原假设正确反之交换数值
                 {
                     temp=a[i];
                     a[i]=a[min];
                     a[min]=temp;
                 }
          }
           }
       }
       int  find(int a[],int n) //定义一个函数find用折半法查找数组中的元素
       {   
          int low=0,high=14,pos;
           while(low<=high )
           {
            pos=(high + low)/2;
            if(a[pos]==n) return pos+1;
            if(a[pos]<n)
            {
              high=pos-1;  //排序后数据由大到小
            }
            else
            {
              low=pos+1;
            }
           }
          return -1;
 }
};
 int main()
 {
     found A;
     int a[15]={0};
     int  n;
     cout<<"please input a[15]:"<<endl;
     for(i=0;i<15;i++)
         cin>>a[i];
     A.paixu(a);
     for(i=14;i>=0;i--)//数组下标是14 到 0
         cout<<a[i]<<' ';
     cout<<endl;
     cout<<"please input n:"<<endl;
     cin>>n;
     cout<<"it is di "<<A.find(a,n)<<" ge shu"<<endl;
     return 0;
 }  
2011-10-30 13:16
快速回复:刚学C++ 求问个 程序 谢谢!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.052434 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved