首页 > 新闻系统 > 编程天地 > 文章正文

Essential C++的例子学习

2008-04-07 16:54:44 来源:中国自学编程网 作者:佚名 点击:

l2 = temp;
}


void bubble_sort( vector<int> &vec,ostream &ofil=cout)
{
 for (int ix=0;ix<vec.size();++ix)
  for (int jx=ix+1;jx<vec.size();++jx)
   if (vec[ix] > vec[jx])
   {
    ofil<<"about to call swap ix="<<ix<<"jx="<<jx<<"\tswapping"
     <<vec[ix]<<"with"<<vec[jx]<<endl;
                swap( vec[ix], vec[jx]);
   }
}


int main()
{
    int ia[8]={8,34,3,13,1,21,5,2};
    vector<int> vec(ia,ia+8 );
 ofstream ofil("data.txt");
    cout<<"vector before sort:\t";
    display( vec );
    
    cout<<" vector after sorted:\t";
  //  bubble_sort( vec ); //使用默认值
 bubble_sort( vec ,ofil); //使用默认值
    display( vec );
    getch();
    return 0;
}

//////////////////////

#include <stdio.h> 
int a[20];                 file://定义一个数组,该数组的用来存放6个数列的数。 
int i;                     file://定义全局变量 i;方便6个函数用做循环。
  int w,e;                   file://定义全局变量 w e,用来记录做对的次数和做错的次数。 
int l,k,j,h,q,f;           file://定义全局变量l k j h q f,分别记录没个数列使用的次数。 
main()
{   int a,b;
    welcome();            file://欢迎界面。 
    system("cls");        file://清屏。 
    do                           
    {srand((unsigned)time(NULL));     file://添加新的种子,以便rand()可以随机取出不同的值。 
    a=rand()%6;                       file://随机取得一个0--5之间的数。 
    switch(a)                         file://随机选择数列。 
    {
    case 0:fib();break;               
    case 1:luc();break;
    case 2:pel();break;
    case 3:tri();break;
    case 4:squ();break;
    case 5:pen();break;
    } gameover();                       file://使游戏结束的提示。 
    }  while(getch()!=’ ’);              file://一但按下空格,就推出循环。 
    printf("Fibonacci的个数:%d\n",l);    file://打印 Fibonacci的个数。 
    printf("Lucas的个数:%d\n",k);        file://打印 Lucas的个数。 
    printf("Pell的个数:%d\n",j);         file://打印 Pell的个数。
 printf("Triangular的个数:%d\n",h);     file://打印 Triangular的个数。 
    printf("Square的个数:%d\n",q);        file://打印 Square的个数。 
    printf("Pentagonal的个数:%d\n",f);       file://打印 Pentagonal的个数。 
    printf("一共做对的个数:%d\n",w);           // 一共做对的个数。   
    getch(); 
}
int sj()                                     file://此函数用来随机选取一个1到10的整数数。 
{   int n1;
    srand((unsigned)time(NULL)); 
    n1=abs(rand()%10)+1;
    return n1;

/* Fibonacci数列*/  
/*首先给这个数列的第一个和第二个树加上特定的值,然后根据数列的算法把所有的值全部添加到数组a[]中*/
fib()                                         
{   a[0]=1; a[1]=1;                          file://列的第一个和第二个数加上特定的值1。 
     for(i=0;i<20;i++)                       
    {a[i+2]=a[i+1]+a[i];  }                   file://该数列的算法。 
    printf3(); l++;                               file://随机打印该数列的3个数,记录次数。
}
/* Lucas数列*/  
/*首先给这个数列的第一个和第二个树加上特定的值,然后根据数列的算法把所有的值全部添加到数组a[]中*/
luc()
{    a[0]=1; a[1]=3;                          file://列的第一个和第二个数加上特定的值1和3。 
     for(i=0;i<20;i++)
    {a[i+2]=a[i+1]+a[i]; }                     file://该数列的算法。 
    printf3(); k++;                          file://随机打印该数列的3个数, 记录次数。
     }
/* Pell数列*/  
/*首先给这个数列的第一个和第二个树加上特定的值,然后根据数列的算法把所有的值全部添加到数组a[]中*/
pel()
{    
     a[0]=1; a[1]=2;                        file://列的第一个和第二个数加上特定的值1和2。
     for(i=1;i<20;i++)
    {a[i+2]=2*a[i+1]+a[i]; }                 file://该数列的算法。  
     printf3();j++;                         file://随机打印该数列的3个数,记录次数。
}  
/* Triangular数列*/  
/*首先给这个数列的第一个和第二个树加上特定的值,然后根据数列的算法把所有的值全部添加到数组a[]中*/ 
tri()
{    
     a[0]=1;                          file://列的第一个数加上特定的值1。 
     for(i=0;i<20;i++)                
    {a[i+1]=a[i]+i+2; }                     file://该数列的算法。
      printf3();h++;                      file://随机打印该数列的3个数,记录次数。
}
/* Square数列*/  
/*首先给这个数列的第一个和第二个树加上特定的值,然后根据数列的算法把所有的值全部添加到数组a[]中*/ 
squ()
{   
    for(i=0;i<20;i++)
    {a[i]=(i+1)*(i+1); }                   file://该数列的算法。 
     printf3();q++;                          file://随机打印该数列的3个数,记录次数。
     }
/*Pentagonal数列*/  
/*首先给这个数列的第一个和第二个树加上特定的值,然后根据数列的算法把所有的值全部添加到数组a[]中*/ 
pen()
{    
     for(i=0;i<20;i++)
     {a[i]=((i+1)*(3*i+2))/2; }             file://该数列的算法。
      printf3();f++;                           file://随机打印该数列的3个数,记录次数。
 }           
printf3()                           file://随机打印函数 
{
     int b,c;                        
     b=sj();                       file://随机取得的数。 
     printf("欢迎使用猜数字游戏\n"); 
     printf("%d  %d  %d  答案:%d\n",*(a+b),*(a+(b+1)),*(a+(b+2)),*(a+(b+3)));
     printf("请您输出第4个数!谢谢\n");
     scanf("%d",&c);                  file://判断游戏者是否做对游戏。 
     if(c==*(a+(b+3)))                file://如果做对就记录下次数
{printf("恭喜您答对了\n"); w++;}
     else                             file://否则 记录错的次数。 
     {printf("好笨哦!\n");e++;}
     getch();
     system("cls");
}
welcome()                              file://欢迎界面 
{        
         printf("欢迎进入猜数字游戏\n");
         printf("本游戏规则如下:\n");
         printf("在游戏开始后,系统将自动输出3个数字\n");
         printf("请您根据这3个数的运算规则输入第4个数,\n");
         printf("在每次游戏结束后可按空格退出。\n");
         printf("按任意键进入游戏\n");
         getch();
}
gameover()                               file://提示。 
{
        printf("退出请按空格,继续请按其他键\n");
}
///////////////////////////////////////////////////////////////////
/*将pentagonal求值函数分为两个,其中之一为inline,用来检验合法性,合理且未被计算过,便调用第二个函数,执行求值工作*/
#include <iostream>
#include <string>
#include <vector>
using namespace std;
9 7 3 1 2 3 4 4 8 :

相关文章:

    无相关新闻
    无相关新闻

精彩推荐
焦点大图推荐
本类热门文章

论坛美图

广告联系 | 版权说明 | 意见建议 | 加入收藏 | 军网站群 [ 军软件园 - 军软件商城 - 军软件园论坛 ]

电信与信息服务业务经营许可证:京ICP证050203