【发布时间】:2016-07-06 17:49:31
【问题描述】:
注意:我是初学者,只是在学习。
我的学生结构包含 5 个姓名、他们的成绩、他们的年龄和他们的成绩。我想知道如何编写和调用一个函数来计算他们的平均成绩,然后打印出来。
#include <stdio.h>
#include <string.h>
typedef struct{
char name[100];
int age;
int scores[5];
} student;
student grade(student st, int grade, int num) {
st.scores[num]=grade;
return st;
}
int main(){
student s1;
strcpy(s1.name, "Student1");
s1.age = 20;
//printf("Size: %d\n", sizeof(s1));
printf("Name: %s\tAge: %d\n", s1.name, s1.age);
s1=grade(s1, 100, 0);
s1=grade(s1, 96, 1);
s1=grade(s1, 99, 2);
s1=grade(s1, 100, 3);
printf("Grade: %d\n", s1.scores[0]);
printf("Grade: %d\n", s1.scores[1]);
printf("Grade: %d\n", s1.scores[2]);
printf("Grade: %d\n", s1.scores[3]);
printf("\n");
return 0;
}
【问题讨论】:
-
错别字:
s2=grade(s1, 94, 0);,接下来的 3 行应为s2=grade(s2 ...,类似于 4s3 =行。 -
加分并除....有什么问题?
-
@WeatherVane 我刚刚改了,谢谢
-
@SouravGhosh 我如何让计算机来执行此操作?
-
@user1049876 您的问题不清楚?您的意思是要计算每个学生的平均成绩吗?在这种情况下,您可以在
student结构中添加一个名为average的新成员,例如double average;。然后你可以定义一个函数double calc_average(student st),它将计算平均值并将其返回。你可以像这样调用那个函数,stdent1.average = calc_average(student1);。
标签: c arrays enums int structure