西周政治制度:又一个c++程序 大家帮忙看一下
template<calss T>
int st(T a[],int n);
template<class T>
void main(void){
int p[9]={5,7,13,2,3,9,8,1,6};
stt(c,11);
stt(p,9);
char c[12]="denominator";
}
template<class T>
int st(T a[],int n){
if(n==1){cout<<n<<",";
return n;};
int k=1;
while(a[k-1]<=a[k])
if(k<n)k++;
cout<<k;return k;
}
template<class T>
void stt(T a[],int n){
int k=st(a,n);
if(k==n){
cout<<endl;return;
}
int i,b{100};
for(i=0;i<n-k;i++)
b[i]=a[i+k];
stt(b,n-k);
}
帮忙弄一下这个程序 看看结果是什么 明天之前要交 我基本不会 希望再帮我讲一下 这个程序中定义的模板的具体功能 谢谢了!
啊 对 差点忘了 还有这个程序是什么功能 那个定义char c数组 有什么作用?
定义数组的内容吧
c语言学的时间长了,忘了
也许这个对你有启发
X之指针
上传日期:2005-4-28
X]r>
//第八章 指针
//Example8_1
[X]
#include
[X]
main()
{ int i,*p; [X]
p=&i;
[X]
*p=5;
[X]
cout<
cout<<*p<
cout<X];p<
cout<<&i<[X]
}
//Example8_2
#include X]r>
main()
[X]
{ int i1=10, i2=20, *p1, *p2, *p ;
p1=&i1; p2=&i2;
[X]
cout<<[X]"*p1="<<*p1<<'\t'<<"*p2="<<*p2< [X]
p=p1;
p1=p2; X]>
p2=p;
cout<<"*p1="<<*p1<<'\t'<<"*p2="&l[X]t;<*p2<
coutX];<" i= "<X]1<<'\t'<<" i2= "<[X]
cout<<"p1= "<X]amp;i1="<<&i1<<'\t'<<"*i2="<<&i2<
}
[X]
//Example8_3
#include
main()
[X]
{ int i1=10, i2=20, i, *p1, *p2 ;
[X]
p1=&i1; p2=&i2;
[X]
cout<<"*p1="<<*p1<<[X]'\t'<<"*p2="<<*p2< [X]
i=*p1;
[X]
*p1=*p2;
*p2=i;
cout&l[X]t;<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<
cout<<"p1= "&l[X]t;i1="<<&i1X];<'\t'<<"&i2="<<&i2&l[X]t;
}
//Example8_4
#include
[X]
main()
{ int ****p1, ***p2, **p3, *p4, i=3 ;
p1=&p2; p2=&a[X]mp;p3; p3=&p4; p4=&i;
cout<<****p1<X]
p4--;
cout<<*p4< [X]
// p1=&p4;
// cout<<**p1<
}
[X]
//Example8_5
[X]#include
main()
{int a[5]={1,2,3,4,5};
i[X]nt *p1,*p2,num;
p1=&a[0];
p2=&a[3];
num=p2-p1;
[X]
cout<<"num="<
if (p2==p1) p2++;
[X]
cout[X]<<"*p2="<<*p2<
}
//Example8_6
[X]
#includeX]t;
[X]
main()
{int x=2, y ;
int *px=&a[X]mp;x;
*(px+1)=5;
y=*++px;
// y[X]=++*px;
cout<<"y="<
}
[X]
//Example8_7
#include X]>
m[X]ain()
{
int a[]={1,3,5,7,9}, i, *p ;
for(i=0; i<5; i++)[X]
cout<<"a["<X]-a<<"]="<<*p<<'\t';
cout<[X]
}
//Example8_8
[X]
#include
main()
{
X]>int a[5], i, *p ;
p=a;
for(i=0;i<5;i++,p++)
[X]
cin>>*p;
cout< [X]
p=a;
for(i=0; i<5; i[X]++,p++)
cout<<"a["<X]Sum= "<X]; [X]
cout<X]ision(2);
cout<<"Average="< [X]
}
// Example8_10
X]r>#include
v[X]oid main()
{ int a[3][5]={1,2,3,4,5,6,7,8,9,10,11,[X]12,13,14,15};
int *p;
for(p=a[0]; pX]p++)
cout<<*p<<" ";
[X]
cout<
for(p=*a; p<*a+15; p++)
cout<<*p&[X]lt;<" ";
cout<
for(int i=0; i<3; i++)
for(int j=[X]0; j<5; j++) [X]
cout<<*(a[i]+j)<<" ";
cout<
}
[X]
// Example8_11
[X]
#include
void main()
{ int [X]*p;
p=new int;
if (!p)
{ cout<<"allocati[X]on faiure\n"; return ; } X]>
*p=20;
cout<<"*p="<<*p<X]
delete p;
}
[X]
// Example8_12
#include
#includeX].h>
void main()
{[X] int *p;
p=new int(99);
if (p==NULL)
{ cout<X];"allocation faiure\n"; return ; }
cout<<"*p="<&l[X]t;*p<
delete p;
[X]
}
// Example8_13
#include
[X]
#include
[X]
void main()
{ float *ap;
int i, size ; X]>
cin>>size;
ap=new float [size];
if (ap==NULL)
[X]
{ cout<<"allocation faiure\n"; return ; }
for(i=0; iX]++)
ap[i]=100.00+i;
for(i=0; iX]
{ cout<<"ap["<X]lt;"]="<
for( i=0; i<10; i++)
cout<X]="<<*pmax<
p=new int; X]r>
*p=2000;
cout<<"*p="<<*p<
//[X] pmax=p;
[X]
p=pmax;
cout<<"*p2="&[X]lt;<*p<
*pmax=*[X]pmax+*p;
cout<<"max2="<<*pmax< [X]
}//Example8_17
#include
[X]
main()
{ const int min=10;
[X]
int max;
const int * const pmax=&max;
// *pm[X]ax=1000;
max=1000;
c[X]out<<"max="<<*pmax<
const int * const pmin=&min;
[X]
// pmin=&am[X]p;max;
// *pmin=0;
cout<<"min="<<*pmin<X]
}
//Example8_18
#include&l[X]t;iostream.h>
void test(int x[],int n)
{
X]r>for(int i=0 ; i
cout<< * x++ <<" ";
[X]
cout<
return ;
}
[X]
void main()
{ int a[10]={1,2,3,4,5,6,7,8,9,10};
[X]
// for(int j=0 ; j<10; j++)
[X]
// cout<< * a++ <<" ";
in[X]t *p=a;
[X]
for(int i=0 ; i<10; i++) X]r>
cout<< * p ++ <<" "; X]>
cout<
test(a,10);
}
[X]
//Example8_19
#includ[X]e
[X]
int sum(int array[],int n)
<[X]br>{ int m=0;
for(int i=0; i [X]
{ m+=*array; array++; }
return m;
[X] X]r>}
void main()
{ int a[10]={1,2[X],3,4,5,6,7,8,9,10};
cout<<"sum="< [X]
}
// Example8_20
#include X]>
#include
void main()
{ float *ap, *t[X]p;
int i, size ;
[X]
cin>>size; X]r>
ap=new float [size];
if (ap==NULL)[X]
{ cout<<"allocation faiure\n"; return ; }
for(i=0[X]; i [X]
ap[i]=100.00+i;
for(i=0,tp=ap; tpX]i++,tp++)
{ cout<<"ap["<X]wapping...\n";
cout<<"a="<X] b="<
}
void swap(int * x , int * y[X])
{ int temp=*x;
X]>*x=*y;
X]r>*y=temp;
}
//Example8_22
#include
[X]
#include
int * find(int a[],int n, int [X]x)
{ int i=0;
while(i
a++,i++;
[X]
if (i [X]
return a;
else return NULL;
}
void main()
[X]
{ int a[10]={1,2,3[X],4,5,6,7,8,9,10};
int * p, x ;
cout<<"find what number?\n";
[X]
cin>>x;
p=find(a,10,x);
if (p![X]=NULL)
cout<
else[X]
cout<<"not found!\n";
}
//Example8_23
[X]
#include
#i[X]nclude
[X]
void main()
{ char src[10]="123456789";
X]r>char dest[10];[X]
char * pc=(char *)memcpy(dest,src,10);
[X]
cout<<"src:"<
cout<<"pc:"<&l[X]t;pc<
cout<<[X]"dest:"<
}//Example8_24
#includeX]ream.h>
#include
#include
[X]
void main()
{ [X]
char one[10]="abcde";
ch[X]ar two[10]="ABCDE";
char * pc1, * pc2;
pc1=one;
[X]
pc2="abcde";
cout<<"one: "[X]<
cout<&[X]lt;"two_4: "<<*(two+3)[X]< [X]
cout<<"pc1==pc2: "<<(pc1==pc2)<
cout<<"one==two: "<&l[X]t;(one==two)<
if(strcmp(pc1,pc2)==[X]0)
cout<<"strpc1==strpc2: "< [X]
else cout<<"strpc1!=strpc2:"<
}
[X]
//Example8_25
[X]
#include
#include
#[X]include
void main()
{
[X]
char *name[5]={"Li Hua","He Xiao Ming","Zhang Li","Sun Fei","[X]Chen Bao"};
char in_name[20];
in[X]t i, flag=0;
cout<<"Enter your name:";
// cin>>in_name;
[X]
gets(in_name);
for(i=0; i<5; i++) X]>
if (strcmp(name[i],in_name)==0)
{ flag=1; break; }
if (flag==1)
[X] X]>cout< [X]
else
cout[X]<X]ur class.\n";
[X]
}
//Example8_26 X]r>
#inc[X]lude
#include
[X]
#include
void main()
{
[X]
char *name[5]={"Li Hua","He Xiao Min[X]g","Zhang Li","Sun Fei","Chen Bao"};
char **p1, **p2,*pt;
int i,j;
[X]
for(i=0; i<4[X]; i++, p1++)
{ p1=&name[i];
for (j=i+1; [X]j<5; j++, p2++)
{ p2=&name[j]; [X]
if(strcmp(*p1,*p2)>0)
{pt=*p1; *p[X]1=*p2; *p2=pt; }
}
}
p1=name;
for(i=[X]0;i<5; i++,p1++) [X]
cout<<"name["<X]ume = "<< vol [X]<< endl;
pf=volume; [X]
vol=(*pf)(r,h);
cout<<"Volume = "<< vol << endl;
[X]
}
//Example8_29
[X]
#include
int sum(int, int); X]r>
int produce(int, int); <[X]br>
main()
{ int (*pf)(int, int);[X]
int a,b,result;
cin >> a>>b;
[X]
pf=sum; [X]
result=(*pf)(a,b);
cout<bin("<in from 0.1 to 1.0 is : "X];
dsum=sigma(cos, 0.5, 3.0);
cout<<"the sum of cos fr[X]om 0.5 to 3.0 is : "<
}
[X]
//Example8_32
[X]
#include
void main(int argc, char * argv[])
{ int k=0[X];
while (k
{ co[X]ut<<"argv "<<k<<": "<<*argv++<X]l;
k++ ;
}
cout<<"argc="<<[X]argc<
}
[X]
[X]