}
5.编一函数,功能为统计字符串中各个字母(不区分大、小写)出现的频率,同时找出频率出现最高的字母及次数。
。
函数形式为:
voidfreq(chars[],intp[],char&chmax,int&max)
#include“iostream.h”
#include“stdio.h”
#include“string.h”
voidfreq(chars[],intp[],char&chmax,int&max)
{for(inti=0;i<26;i++)
p[i]=0;
strlwr(s);
i=0;
while(s[i]!
=’\0′)
{if(s[i]>=’a'&&s[i]<=’z')
p[s[i]-’a']++;
i++;
}
max=p[0];intk=0;
for(i=1;i<26;i++)
if(p[i]>max)
{max=p[i];k=i;}
chmax=k+97;
}
voidmain()
{intp[26],i,max;chars[80],chmax;
gets(s);
freq(s,p,chmax,max);
for(i=0;i<26;i++)
if(p[i])cout<cout<}
6.编写函数max,其功能是将字符串s中最大字符的地址返回,再编写一个主函数,调用该函数,将字符串s中从最大字符开始的子串中的小写字母转换成大写字母,然后输出新字符串s。
例如,假设s的内容为“qwertyou”,则从最大字符’y’开始的子串为“you”,处理后的s为“qwertYOU”。
函数形式为:
char*max(chars[]);
#include“iostream.h”
#include“string.h”
#include“stdio.h”
char*max(chars[])
{char*p=s;
inti=1,imax=0;
while(s[i]!
=’\0′)
{if(s[i]>s[imax])imax=i;
i++;
}
while(s[imax]!
=’\0′)//等价于strupr(&s[imax]);
{s[imax]-=32;imax++;}
returnp;
}
voidmain()
{chars[100];
gets(s);
cout<}
7.编一函数,求级数的部分和,当最后一项的值小于eps时结束。
设eps的默认值为10-6。
函数形式为:
doublefun(doublex,doubleeps=1e-6);
#include
#include
doublefun(doublex,doubleeps=1e-6)
{intn=1;
doublet=1,s=0;
while(fabs(x/t)>1e-6)
{
s=s+x/t;
n=n+2;
t=-t*n*(n-1);
}
returns;
}
voidmain()
{doublex;
cin>>x;
cout<}
8.编写两个同名的函数,分别求出整型数的两点间距离和浮点型数的两点间距离,调试成功后,再将其改为用函数模板实现。
函数形式为:
doubledist(intx1,inty1,intx2,inty2);
doubledist(doublex1,doubley1,doublex2,doubley2);
#include
#include
doubledist(intx1,inty1,intx2,inty2)
{
return(sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)));
}
doubledist(doublex1,doubley1,doublex2,doubley2)
{
return(sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)));
}
voidmain()
{intx1,x2,y1,y2;
doublex11,x12,y11,y12;
cin>>x1>>y1>>x2>>y2;
cin>>x11>>y11>>x12>>y12;
cout<<”dist1=”<cout<<”dist2=”<}
用函数模板来实现:
#include
#include
template
doubledist(Tx1,Ty1,Tx2,Ty2)
{
return(sqr