c语言程序,帮忙编写下,只做参考。

来源:百度知道 编辑:UC知道 时间:2024/09/24 12:31:27
1.学生的记录由学号和成绩组成,N名学生的数据保存在结构体数组s中,请编写函数实现如下功能:把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。
/*以下定义学生记录结构体类型*/
#define N 8
struct student{
char num[10];
double s;
};
函数原型为:
double fun(struct student *a, struct student *b, int *n)
/*参数a:保存N名学生数据的数组*/
/*参数b:保存低于平均分的学生数据*/
/*参数n:保存低于平均分的学生人数*/
2.请编写函数实现如下功能:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
函数原型为:int fun(int a[], int n)
3.假定输入的字符串中只包含字母和*号。请编写函数完成如下功能:除了尾部的*号之外,将字符串中其他*号全部删除。例如,若字符串中的内容为****A*BC*DEF*G******,删除后,字符串中的内容应当是ABCDEFG******。
函数原型为:void fun(char *a,char *p);

1.
#include <memory.h>
double fun( struct student * a, struct student * b, int * n )
{
double everage = 0.0;
int i = 0;
int j = 0;
for ( i = 0; i < N; i++ )
{
everage += a[i].s;
}
everage /= N;
for ( i = 0; i < N; i++ )
{
if ( a[i].s < everage )
{
memcpy( b+j, a+i, sizeof( struct student ) );
j++;
}
}
*n = j;
return everage;
}

2.
int fun( int a[], int n )
{
int nValue = a[0];
int i = 0;
int nTemp = 0;
int nPos = 0;
for ( i = 1; i < n; i++ )
{
if ( nValue == a[i] )
{
a[i] = a[0]-1;
}
else
{
nValue = a[i];
nTemp = a[nPos+1];
a[nPos+1] = a[i];
a[i] = nTemp;
nPos++;
}
}

return nPos+1;
}

3.
void fun2( char * a, char * p )
{
int nCount = 0;