1、出2xM整型二维数组中最大元素的值,并将此值返回调用函数。
int fun (int a[][M])
{
int i,j,max=a[0][0];
for(i=0;i<2;i++)
for(j=0;j<M;j++)
if(max<a[i][j])
max=a[i][j];
return max;}
2、根据以下公式求π值。
double fun ( double eps)
{ double s=0.0,s1=1.0;
int n=0;
while(s1>=eps)
{ s=s+s1;
s1=s1*n/(2*n+1);
n++;
}
return 2*s;
}
3、求出1~1000之间能被7或11整除但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数。
void fun (int *a, int *n)
{ int i,j=0;
for(i=1;i<=1000;i++)
if((i%7==0||i%11==0)&&i%77!=0)
a[j++]=i;
*n=j;
}
4、删除字符串中所有*号。
void fun( char *a )
{ int i,j=0;
for(i=0;a[i]!='\0';i++)
if(a[i]!='*')
a[j++]=a[i];
a[j]='\0';
}
5、实现两个字符串的连接(不要同时使用库函数),即把p2所指的字符串连接到p1所指的字符串的后面。
void fun(char p1[], char p2[])
{
int i,j;
for(i=0;p1[i]!='\0';i++) ;
for(j=0;p2[j]!='\0';j++)
p1[i++]=p2[j];
p1[i]='\0';}
6、某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能:求出平均分,并放入记录的ave成员中。
void fun(STREC *a)
c 字符串转数组{ int i;
a->ave=0.0;
for(i=0;i<N;i++)
a->ave=a->ave+a->s[i];
a->ave/=N; }
7、n名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的头结点。求
出平均分,并由函数值返回
double fun( STREC *h )
{ double ave=0.0;
STREC *p=h->next;
while(p!=NULL)
{ ave=ave+p->s;
p=p->next;
}
return ave/N;}
8、将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过K返回。
void fun( int m, int *k, int xx[] )
{ int i,j,n=0;
for(i=4;i<m;i++)
{ for(j=2;j<i;j++)
if(i%j==0) break;
if(j<i) xx[n++]=i;
}
*k=n;
}
9、求ss所指字符串中指定字符的个数,并返回此值。
int fun(char *ss, char c)
{ int i=0;
for(;*ss!='\0';ss++)
if(*ss==c)
i++;
return i;
}
10、计算n门课程的平均分,结果作为函数值返回。
float fun ( float *a , int n )
{ int i;
float av=0.0;
for(i=0; i<n;i++)
av=av+a[i];
return(av/n);
}
11、学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,求最高的放在b所指的数组中。注意:分数最高的学生也许不止一个,函数返回分数最高的学生的人数。
int fun( STREC *a, STREC *b )
{ int i,j=0,max=a[0].s;
for(i=0;i<N;i++)
if(max<a[i].s) max=a[i].s;
for(i=0;i<N;i++)
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;i<N;i++)
if(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;i<N;i++)
if(min>a[i].s)
min=a[i].s; /*出最小值*/
for(i=0;i<N;i++)
if(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;i<n-e;i++)
a[j++]=a[i];
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论