M个学生的N门课程的成绩,分析每个学生的平均成绩和每一门课程的平均成绩。用C语言 函数来写。

请在下列成绩的基础上进行修改,进行程序功能的函数化,实现学生成绩的录入、均值计算及信息显示等功能采用函数来解决。在功能函数化中,不能采用全局变量。
#include<stdio.h>
#define STUDENT 3
#define COURSE 2
int main()
{
int i;
float grade[STUDENT][COURSE];
float student_average[STUDENT],course_average[COURSE];
float *position, *ptr, (*ptr_col)[COURSE], sum;
/*录入学生成绩,将存储成绩的grade数组看出一维数组*/
printf("请输入学生成绩\n");
for (position=&grade[0][0];position<=&grade[STUDENT-1][COURSE-1];position++)
{
scanf("%f",position);
}
/*按行求学生成绩均值**/
ptr=&student_average[0];
for (i=0;i<STUDENT;i++)
{
sum=0;
for (position=grade[i];position<grade[i]+COURSE;position++)
{
sum+=*position;
}
*ptr++=sum/COURSE;
}

/*按列求课程平均成绩*/
ptr=&course_average[0];
for (i=0;i<COURSE;i++)
{
sum=0;
for (ptr_col=&grade[0];ptr_col<=&grade[STUDENT-1];ptr_col++)
{
sum+=(*ptr_col)[i];
}
*ptr++=sum/STUDENT;
}

for (i=0;i<COURSE;i++)
{
printf("%8.2f", course_average[i]);
}
printf("\n");
for (i=0;i<STUDENT;i++)
{
printf("%8.2f", student_average[i]);
}

return 0;
}

第1个回答  2018-11-29
#include <stdio.h>
#include <string.h>
struct stu
{
char name[32];
int english;
int chinese;
int math;
.....n门课程
};
void main(void)
{
int i,score,average;
char NAME;
struct stu *STU[m] //m为已知的学生个数
for(i=0;i<M;i++)
{
STU = malloc(struct stu);
printf("请输入第%d个学生的姓名",i+1);
scanf("%s",&NAME);
strcpy(STU[1]->name,NAME);
printf("english :")
scanf("%d",&score);
STU[i]->english = score;
...........依次类推
}
printf("要查询的学生姓名:")
scanf("%s",NAME);
for(i = 0,i < m;i++)
{
if(!(strcmpa[i]->name,NAME)
{
average = (STU[i]->english+STU[i]->chinese+STU[i]->math)/n;
}
}
for(i=0;i<m;i++)
{
free(a[i]);
}
exit(1);
}本回答被网友采纳
第2个回答  2018-11-29
这个不要赋值,都定义float了,还赋什么初值? float s[100]; 这个printf语句要移动到这层循环外。 for(i=0;i

c语言作业:输入m名学生的n门课程的考试成绩,输出每位学生n门课程的平均...
我这边初始3门学科测试,你想要多,改这个数字就行typedef struct stu_info{ int c[xk];\/\/该学生所有科目成绩 float ave;\/\/该学生所有科目的平均分 struct stu_info *next;}STUIFO;STUIFO *insertSTUIFO(STUIFO *stuHead,STUIFO...

C语言输入M个学生N门课程的成绩,要求输出成绩单(包括每个学生的平均分及...
score[i][0]\/=n; } for(j=1;j<=n;j++) score[0][j]\/=m;}void printscore(float score[200][50],int m,int n){ int i,j; printf("the score chart is:\\n"); printf("NO\\t"); for(j=1;j<=n;j++) printf("score%d\\t",j); printf("average\\n"); for(i=1;i<=m;i++) ...

...所有的学生的各科成绩,编程:分别求出每个学生的平均成绩和每门...
j++)\/\/求每个学生课程分数和\\x0d\\x0asum=sum+stc[i][j];\\x0d\\x0aavg[i]=sum*1.0\/M;\/\/求每个学生课程分数平均成绩\\x0d\\x0a}\\x0d\\x0afor(i=0;i<N;i++)\\x0d\\x0a{\\x0d\\x0asum=0;\\x0d\\x0afor(j=0;j<M;j++)\/\/求每门课程分数和\\x0d\\x0asum=sum+stc[i...

有N个学生,每人考M门课,求出每个同学的平均成绩和每门课的平均成绩...
define M 3\/\/课目数 int *getSAve(int score[][M]);\/\/每个学生平均成绩 int *getCAve(int score[][M]);\/\/每门课的平均成绩 int main(){ int i,j,score[N][M],*ave=NULL;\/\/局部变量 for(i=0;i<N;i++){ printf("分别输入第%d个学生的%d门课成绩:",i+1,M);for(j=0;j...

有N个学生,每人考M门课,求出每个同学的平均成绩和每门课的平均成绩...
以下是C语言的示例代码,用于计算每个学生的平均成绩和每门课的平均成绩。假设成绩存储在一个NxM的数组中,其中第i个学生的第j门课的成绩存储在数组的第i行第j列。include <stdio.h> int main() { int N, M;printf("请输入学生人数和考试科目数:\\n");scanf("%d %d", &N, &M);int ...

...学生的n门课成绩,可以输出每个学生的平均分和每门课程的平均分,找出...
float stu_aver; \/\/一个(某个)学生的平均成绩 };void input(struct student *pstu) \/\/自定义输入函数input {int i;printf("请输入相关学生的信息:\\n");printf("学号 姓名 语文 数学 外语\\n");for(i=0;i<NUM1;i++,pstu++){ scanf("%ld%s%f%f%f",&pstu->num,pstu->na...

...学生的各科成绩,分别求每个学生的平均成绩和每门课程的平均成绩...
i][j];\\x0d\\x0aavg[i]=sum*1.0\/M;\/\/求每个学生课程分数平均成绩\\x0d\\x0a}\\x0d\\x0afor(i=0;i<N;i++)\\x0d\\x0a{\\x0d\\x0asum=0;\\x0d\\x0afor(j=0;j<M;j++)\/\/求每门课程分数和\\x0d\\x0asum=sum+stc[i][j];\\x0d\\x0aavgs[i]=sum*1.0\/M;...

C语言统计N个学生,M门成绩求平均数求每门的平均分
include <string.h> struct stu { char name[32];int english;int chinese;int math;...n门课程 };void main(void){ int i,score,average;char NAME;struct stu *STU[m] \/\/m为已知的学生个数 for(i=0;i<M;i++){ STU = malloc(struct stu);printf("请输入第%d个学生的姓名",i...

C语言矩阵怎样表示分数
C语言没有分数类型。想要表示分数的话需要自己构造数据结构。

...学生学N 门课,所以有N门成绩, 求每人的平均成绩,并按平均成绩从大...
define N 3 main(){ int i,j,k;float sum,temp;float a[M][N];\/\/={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};float aver[M];for(i=0;i<M;i++)for(j=0;j<N;j++){scanf("%f,",&a[i][j]); } printf("Src=\\n");for(i=0;i<M;i++){ printf("\\n** No...

相似回答