练练手

来源:互联网 发布:济南网络推广公司 编辑:程序博客网 时间:2024/04/26 03:47
#include <stdio.h>#include <STRING>#include <IOSTREAM>using namespace std;typedef int(*PFI2S)(const string&,const string&);int lexicoCompare(const string&,const string&);void sort(string *s1,string *s2, PFI2S=lexicoCompare);//int sort(string *s1,string *s2,int(*)(const string&,const string&));int rgcd(int v1,int v2);int factorial(int v1);int(*pGCD)(int,int);//=rgcd;int Min(int v1,int v2);const char*str="hello";/*extern "C"{void *malloc(int);char *strcpy(char*,const char*);int printf(const char *, ...);int exit(int);int strlen(const char*);};*/int BubbleSort(int *pArr,int iArrSize);void main(){char *s=(char*)malloc(strlen(str)+1);strcpy(s,str);printf("%s world\n",s);//exit(0);int v1=15;int v2=123;int iRgcd=0;//iRgcd=rgcd(v1,v2);pGCD=rgcd;printf("v1:%d-v2:%d-rgcd:%d\n",v1,v2,pGCD(v1,v2));pGCD=Min;printf("v1:%d-v2:%d-rgcd:%d\n",v1,v2,pGCD(v1,v2));//如果函数指针的值为0,则将导致运行时刻错误。//只有已经被初始化或赋值的指针(引用到一个函数)才可以被安全地用来调用一个函数printf("%d\n",factorial(5));int i=0;string as[10]={"as","liu","xiao","tao","ab","nan","fei","yan","xian","yun"};for (i=0;i<sizeof(as)/sizeof(as[0]);i++){cout<<as[i].c_str()<<"-";}cout<<endl;sort(as,as+sizeof(as)/sizeof(as[0])-1);for (i=0;i<sizeof(as)/sizeof(as[0]);i++){cout<<as[i].c_str()<<"-";}cout<<endl;int a[5]={13,10,57,32,11};int iSize=sizeof(a)/sizeof(a[0]);for (i=0;i<iSize;i++){cout<<a[i]<<",";}cout<<endl;BubbleSort(a,iSize);for (i=0;i<iSize;i++){cout<<a[i]<<",";}cout<<endl;}int rgcd(int v1,int v2){if (v2!=0){return rgcd(v2,v1%v2);}return v1;}int factorial(int v1){if (v1!=1){return v1*factorial(v1-1);}return 1;}void sort(string *s1,string *s2,PFI2S compare){if (s1<s2){string elem=*s1;string *low=s1;string *high=s2+1;for (;;){while(compare(*++low,elem)<0&&low<s2);while(compare(elem,*--high)<0&&high>s1);if (low<high){low->swap(*high);}else{break;}}s1->swap(*high);sort(s1,high-1,compare);sort(high+1,s2,compare);}}int lexicoCompare(const string &s1,const string &s2){return s1.compare(s2);}int Min(int v1,int v2){if (v1<=v2){return v1;}else{return v2;}}int BubbleSort(int *pArr,int iArrSize){int a[5]={13,10,57,32,11};bool blChange=false;int iTemp=0;int iSize=sizeof(a)/sizeof(a[0]);/*向下冒泡&&升序for (int i=0;i<iSize-1;i++){for (int j=0;j<iSize-i-1;j++){if (a[j]>a[j+1]){iTemp=a[j];a[j]=a[j+1];a[j+1]=iTemp;}}}*//*向下冒泡&&降序for (int i=0;i<iSize-1;i++){for (int j=0;j<iSize-i-1;j++){if (a[j]<a[j+1]){iTemp=a[j];a[j]=a[j+1];a[j+1]=iTemp;}}}*//*向上冒泡升序for (int i=0;i<iSize;i++){for (int j=iSize-1;j>i;j--){if (a[j]<a[j-1]){iTemp=a[j];a[j]=a[j-1];a[j-1]=iTemp;}}}*//*for (iTemp=0;iTemp<iSize;iTemp++){cout<<a[iTemp]<<"-";}cout<<endl;*/for (int i=0;i<iArrSize;i++){for (int j=iArrSize-1;j>i;j--){if (pArr[j]<pArr[j-1]){iTemp=pArr[j];pArr[j]=pArr[j-1];pArr[j-1]=iTemp;}}}return 0;}