【十万火急】三道关于C语言的题目,要功能完整的可运行的代码,急求大神,谢谢!【是C语言,不是C++!】

1.m个人的成绩存放在score数组中
(1)请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放于below所指定的数组中。
(2)编写主函数,输入m个人的成绩,输出数组below。
================================================
2.请编写函数void fun(int x,int pp[],int *n),它的功能是求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。编写主函数,在主函数中给定整数的范围,输入x的值,输出pp数组、n得值。
================================================
3.学生的记录由学号和成绩组成,n名学生数据已在主函数中放入结构体数组s中
(1)请编写函数fun,它的功能使:把分数最高的学生数据放在h所指的数组中,注意,分数最高的学生可能不止一个,函数返回分数最高的学生人数
(2)编写主函数,输入n名学生的数据,输出数组h及分数最高的学生的人数。

请把写好的代码发到我的QQ邮箱好么,谢谢!!!
[email protected]

第1个回答  2013-03-15
1、
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int sum_score=0;
int avg_score=0;
int *score = NULL;
int *bellow = NULL;
int num_bel=0;
int func(int number)
{
if(score[number] < avg_score)
{
bellow[num_bel++]=score[number];
return number;
}
return -1;
}
int main(void)
{
int num_stu=0;
int i=0;
printf("please input number of student:\n");
scanf("%d",&num_stu);
score =(int *)malloc(num_stu*sizeof(int));
bellow = (int *)malloc(num_stu*sizeof(int));
if(score != NULL && bellow!=NULL)
{
memset(score,0,num_stu*sizeof(int));
memset(bellow,0,num_stu*sizeof(int));
}
for(;i<num_stu;i++)
{
printf("no.%d score is:",i);
scanf("%d",score+i);
sum_score+=*(score+i);
}
avg_score = sum_score/num_stu;
for(i=0;i<num_stu;i++)
{
func(i);
}
if(num_bel!=0)
{
for(i=0;i<num_bel;i++)
{
printf("%d ",bellow[i]);
}
printf("\n");
}
free(bellow);
free(score);
return 0;
}

2、
#include<stdio.h>
int num=0;
int data[10]={21,14,7,49,28,21,9,35,6,7};
int pdata[10]={0};
int x_value=0;
void fun(int x,int pp[],int *n)
{
int i=0;
int j=0;
int tmp=0;
for(;i<10;i++)
{
if(data[i]%2!=0 && data[i]%x_value==0)
{
pdata[(*n)++]=data[i];
}
}
for(i=0;i<num;i++)
{
for(j=i+1;j<num;j++)
{
if(pdata[i]>pdata[j])
{
tmp=pdata[i];
pdata[i]=pdata[j];
pdata[j]=tmp;
}
}
}
}
int main(void)
{
int i=0;
printf("please input the value of X:");
scanf("%d",&x_value);
fun(x_value,pdata,&num);
for(;i<num;i++)
{
printf("%d ",pdata[i]);
}
printf("\n");
return 0;

}

3、
#include<stdio.h>
struct student{
int stu_num;
int score;
};
struct student high[6]={0};
int fun(struct student *p)
{
int max=0;
int i=0;
int num=0;
for(;i<6;i++)
{
if(p[i].score > max)
{
max = p[i].score;
}
}
for(i=0;i<6;i++)
{
if(p[i].score == max)
{
high[num++]=p[i];
}
}
return num;
}
int main(void)
{
int high_num=0;
int i=0;
struct student stu[6]=
{
{2001,99},
{2002,94},
{2003,92},
{2004,99},
{2005,98},
{2006,99},
};
high_num = fun(stu);
printf("same highest number is:%d\n",high_num);
for(;i<high_num;i++)
{
printf("%d %d \n",high[i].stu_num,high[i].score);
}
return 0;
}
相似回答