c语言编程题。。不会做求大神 10
要求:(1)通过Input函数读取数据;(2)通过Total1计算每个学生的总分和平均分;(3)通过Sort函数将每个学生按照平均分由高到低排序;(4)通过Print函数...
要求:(1)通过Input函数读取数据;(2)通过Total1计算每个学生的总分和平均分;(3)通过Sort函数将每个学生按照平均分由高到低排序;(4)通过Print函数打印学生成绩表。
Input 函数函数原型如下:
void Input( struct student *p, int n);
函数参数:p 指向存放结构体变量的第一个存储单元,n 班级实际人数;
返回值: 无
Total1函数函数原型如下:
void Total1( struct student *p, int *psum, float *pave, int n);
函数参数:p 指向存放结构体变量的第一个存储单元
psum 指向存放总分的第一个存储单元
pave 指向存放平均分的第一个存储单元
n 班级实际人数
返 回 值: 无
Sort 函数函数原型如下:
void Sort( struct student *p, int *psum, float *pave, int n);
函数参数:p 指向存放结构体变量的第一个存储单元
psum 指向存放总分的第一个存储单元,
pave 指向存放平均分的第一个存储单元
n 班级实际人数
返 回 值: 无
Print 函数函数原型如下:
void Print( struct student *p, int *psum, float *pave, int n);
函数参数:p 指向存放结构体变量的第一个存储单元
psum 指向存放总分的第一个存储单元
pave 指向存放平均分的第一个存储单元
n 班级实际人数
返 回 值: 无
[友情提示:]
在主函数中需要申请的内存如下:
( struct student * ) malloc ( m*sizeof( struct student ) );
( int * ) malloc ( m*sizeof( int ));
( float * ) malloc ( m*sizeof( float ));
其中m是班级实际人数
输入要求:一行输入一个人的信息,数据之间用空格分隔。详见输入样例
输出要求: "Pos\tNum\tName\t\tEng\tCom\tMath\tSum\tAver\n"
"%d\t%ld\t%s\t\t%d\t%d\t%d\t%d\t%.0f\n"
输入输出样例:
Input sample:
8
19001 Wanglin 78 81 75
19002 Zhangyi 67 73 70
19003 Lili 88 90 92
19004 Liuping 92 95 96
19005 Xumin 57 56 60
19006 Tianlin 96 89 91
19007 Zhouyun 89 91 87
19008 Xiehui 95 87 90
Output sample:
Pos Num Name Eng Com Math Sum Aver
1 19004 Liuping 92 95 96 283 94
2 19006 Tianlin 96 89 91 276 92
3 19008 Xiehui 95 87 90 272 91
4 19003 Lili 88 90 92 270 90
5 19007 Zhouyun 89 91 87 267 89
6 19001 Wanglin 78 81 75 234 78
7 19002 Zhangyi 67 73 70 210 70
8 19005 Xumin 57 56 60 173 58 展开
Input 函数函数原型如下:
void Input( struct student *p, int n);
函数参数:p 指向存放结构体变量的第一个存储单元,n 班级实际人数;
返回值: 无
Total1函数函数原型如下:
void Total1( struct student *p, int *psum, float *pave, int n);
函数参数:p 指向存放结构体变量的第一个存储单元
psum 指向存放总分的第一个存储单元
pave 指向存放平均分的第一个存储单元
n 班级实际人数
返 回 值: 无
Sort 函数函数原型如下:
void Sort( struct student *p, int *psum, float *pave, int n);
函数参数:p 指向存放结构体变量的第一个存储单元
psum 指向存放总分的第一个存储单元,
pave 指向存放平均分的第一个存储单元
n 班级实际人数
返 回 值: 无
Print 函数函数原型如下:
void Print( struct student *p, int *psum, float *pave, int n);
函数参数:p 指向存放结构体变量的第一个存储单元
psum 指向存放总分的第一个存储单元
pave 指向存放平均分的第一个存储单元
n 班级实际人数
返 回 值: 无
[友情提示:]
在主函数中需要申请的内存如下:
( struct student * ) malloc ( m*sizeof( struct student ) );
( int * ) malloc ( m*sizeof( int ));
( float * ) malloc ( m*sizeof( float ));
其中m是班级实际人数
输入要求:一行输入一个人的信息,数据之间用空格分隔。详见输入样例
输出要求: "Pos\tNum\tName\t\tEng\tCom\tMath\tSum\tAver\n"
"%d\t%ld\t%s\t\t%d\t%d\t%d\t%d\t%.0f\n"
输入输出样例:
Input sample:
8
19001 Wanglin 78 81 75
19002 Zhangyi 67 73 70
19003 Lili 88 90 92
19004 Liuping 92 95 96
19005 Xumin 57 56 60
19006 Tianlin 96 89 91
19007 Zhouyun 89 91 87
19008 Xiehui 95 87 90
Output sample:
Pos Num Name Eng Com Math Sum Aver
1 19004 Liuping 92 95 96 283 94
2 19006 Tianlin 96 89 91 276 92
3 19008 Xiehui 95 87 90 272 91
4 19003 Lili 88 90 92 270 90
5 19007 Zhouyun 89 91 87 267 89
6 19001 Wanglin 78 81 75 234 78
7 19002 Zhangyi 67 73 70 210 70
8 19005 Xumin 57 56 60 173 58 展开
1个回答
展开全部
#include <stdio.h>
struct student
{
int tNum;
char tName[10];
float score[3];
};
void Input( struct student *h, int n)
{
h=NULL;
student *p;
for(int i=0;i<n;i++)
{
p=malloc(sizeof(student));
scanf("%d%s",&(p->tNum),&(p->tName));
for(int i=0;j<3;j++)
scanf("%f",&(p->score[j]));
if(i==0)
h=p;
p++;
}
}
void Total1( struct student *p, int *psum, float *pave, int n)
{
for(int i=0;i<n;i++)
{
*psum=0;
for(int j=0;j<3;i++)
*psum=*psum+p->score[j];
*pave=*psum/3;
psum++;
pave++;
p++;
}
}
void Print( struct student *p, int *psum, float *pave, int n);
{
int i=0,j;
printf( "Pos\tNum\tName\t\tEng\tCom\tMath\tSum\tAver\n");
for(i=0;i<n;i++)
{
printf( "%d\t%ld\t%s\t",i,p->tnum,p->tname);
for(j=0;j<3;j++)
printf("%d\t",p->score[j]);
print("%d\t%.1f\n",*psum,*ave);
p++;
psum++;
pave++;
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询