if(max==a[i].s)
b[j++]=a[i];
return j; }
12、除了字符串前导的*号之外,将串中其他*号全部删除。void fun( char *a )
{ int i=0;
char *p=a;
while(*p&&*p=='*')
{ a[i]=*p;
i++;
p++;
}
while(*p)
{ if(*p!='*')
{a[i]=*p;i++;}
p++;
}
a[i]='\0';
}
13、统计在tt所指的字符串中’a’到’z’26个小写字母给出现的次数,并依次放在pp所指数组中。
void fun(char *tt, int pp[])
{ int i;
for(i=0;i<26;i++)
pp[i]=0;
for(;*tt!='\0';tt++)
if(*tt>='a'&&*tt<='z')
pp[*tt-'a']++;
}
14、将字符串尾部的*号全部删除,前面和中间的*号不动。void fun( char *a )
{ while(*a!='\0')
a++;
a--;
while(*a=='*')
a--;
*(a+1)='\0'; }
15、比较字符串的长度,函数返回较长的字符串,如果相同,则返回第一个字符串。
char *fun ( char *s, char *t)
{ int i,j;
for(i=0;s[i]!= '\0';i++);
for(j=0;t[j]!= '\0';j++);
if(i<=j)
return t;
else
return s;}
16、学生的记录由学号成绩组成,N名学生的数据已放入主函数中的结构体数组s中,函数返回该学生的学生数据,指定的学号在主函数中输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数数值返回。
STREC fun( STREC *a, char *b )
{int i;
STREC str={"\0",-1};
for(i=0;iif(strcmp(a[i].num,b)==0)
str=a[i];
return str;
}
17、将s所指字符串中除下标为偶数同时ASCII码值也为偶数的字符外,其余的全部删除字符串中剩余的字符所形成的新串放在t数组中。 void fun(char *s, char t[]) {
int i,j=0;
for(i=0;s[i]!='\0';i++)
if(i%2==0 && s[i]%2==0)
t[j++]=s[i];
t[j]='\0';
}
18、利用下面的简单迭代方法求方程cos(x)-x=0的一个实根s。
double fun()
{ double x0,x1;
x1=0.0;
do
{
x0=x1;
x1=cos(x0);
}while(fabs(x0-x1)>=1e-6);
return x1;
}
19、将字符串中的前导*号全部移到字符串尾部。
void fun( char *a )
{ int i=0,n=0;
char *p;
p=a;
while (*p=='*') /*判断*p是否是*号,并统计*号的
个数*/
{
n++;p++;
}
while(*p) /*将前导*号后的字符传递给a*/ {
a[i]=*p;i++;p++;
}
while(n!=0)
{
a[i]='*';i++;n--;
}
a[i]='\0';}
20、N名学生的数据已放入主函数中的结构体数组中,把分
数最低的学生数据放入b所指的数组中。
int fun( STREC *a, STREC *b )
{int i,j=0,min=a[0].s;
for(i=0;iif(min>a[i].s)
min=a[i].s; /*找出最小值*/
for(i=0;iif(min==a[i].s)
b[j++]=a[i]; /*找出成绩与min相等的学生的记录,存入结构体b中*/
return j;
}
21、计算
double fun( int m )
{ int i;
double s=0.0;
for(i=1;i<=m;i++)
s=s+log(i);
return sqrt(s);
}
22、只删除字符前导和尾部的*号,串中字母间的*号都不删除。
void fun( char *a, int n,int h,int e )
{ int i,j=0;
for(i=h;ia[j++]=a[i];
a[j]='\0'; }
23、将s所指字符串中下标为偶数的字符删除,剩余字符形
成的新串放在t所指数组中