1、将字符串中的每一个字符循环向右移动若干位。(采用递归函数实现)
#include<>
#include<>
void youyi(char a[],int n)
{int i;
char t;
if(n>1){ t=a[strlen(a)-1];
for(i=strlen(a)-1;i>0;i--)
{a[i]=a[i-1];}
a[0]=t;
youyi(a,--n); /*递归函数*/
}
else { t=a[strlen(a)-1];
for(i=strlen(a)-1;i>0;i--)
{a[i]=a[i-1];}
a[0]=t;}
}
void main()
{char a[100]=" ds dasda zgydsdhsdg!!!";
int n;
cout<<"输入右移的位数"<<endl;
cin>>n;
cout<<"没有右移之前:"<<endl<<a<<endl;
youyi(a,n); /*函数调用*/
cout<<"右移之后:"<<endl;
cout<<a<<endl;
}
2、设计函数模板,求数组的最大值和最小值。
#include<>
#include<>
template<class T> void zuizhi(T a[],T& p,T& q,int n)
{ int i;
p=q=a[0];
for(i=1;i<n;i++)
{if(a[i]>p) p=a[i];
if(a[i]<q) q=a[i];}
}
void main()
{float a[100]={0},max1,min1;
int b[100]={0},max2,min2;
char c[100]={0},max3,min3;
int i=0;
cout<<"输数五个小数:"<<endl;
while(i<5)
{ cin>>a[i++];}
max1=min1=a[0];
zuizhi(a,max1,min1,i);
cout<<endl;
cout<<"最大的小数:"<<max1<<" 最小的小数:"<<min1<<endl<<endl; /*实数调用*/
i=0;
cout<<"输数五个整数:"<<endl;
while(i<5)
{ cin>>b[i++];}
max2=min2=b[0];
zuizhi(b,max2,min2,i);
cout<<endl;
cout<<"最
20**********-张海东 来自淘豆网m.daumloan.com转载请标明出处.