C程序--计算平均分(结构体)

#include<stdio.h>
#include<string.h>
#define N 10
#define MAX_LEN 10


int main()
{
      struct stu
      {
            int number;
            char name[N] ;
            int score ;
      };
      struct stu student[N] ;
      int  i ,n ;
      float aver = 0,sum = 0;
      scanf("%d",&n) ;
      for(i = 0 ;i < n; i++)
      {
            scanf("%d %s %d",&student[i].number,&student[i].name,&student[i].score);
            getchar();
            sum += student[i].score ;
      }
      aver = sum /n ;
      printf("%.2f",aver);


return 0 ;
}

 

### 使用结构体计算平均成绩 #### C++ 实现 在 `Data Structures and Algorithms Made Easy in C++` 中提到,可以利用结构体来存储学生的姓名和各科目的分数,并通过成员函数计算平均分[^1]。 ```cpp #include <iostream> #include <string> struct Student { std::string name; float scores[5]; // 假设有五门课程的成绩 // 计算平均分的成员函数 float calculateAverage() const { float sum = 0.0f; for(int i=0;i<5;++i){ sum += scores[i]; } return sum / 5.0f; } void displayInfo() const{ std::cout << "Name: " << name << "\n"; std::cout << "Scores:"; for(int i=0;i<5;++i){ std::cout << " " << scores[i]; } std::cout << "\nAverage Score: " << calculateAverage(); } }; int main(){ Student student{"张三",{89,76,92,83,85}}; student.displayInfo(); return 0; } ``` 此代码定义了一个名为 `Student` 的结构体,其中包含了学生的名字 (`name`) 和五个科目成绩数组 (`scores`)。还提供了一个用于计算这些成绩均值的方法 `calculateAverage()` 及显示学生成绩详情的方法 `displayInfo()`。 #### Go 实现 对于Go语言,在处理类似需求时同可以通过自定义类型(即结构体)并为其添加方法来进行操作: ```go package main import ( "fmt" ) type Student struct { Name string Scores []float64 } func (s *Student) CalculateAverage() float64 { var total float64 = 0 for _, score := range s.Scores { total += score } return total / float64(len(s.Scores)) } func (s *Student) DisplayInfo() { fmt.Printf("Name:%v\n", s.Name) fmt.Print("Scores:") for _, v := range s.Scores { fmt.Printf("%v ", v) } fmt.Println() fmt.Printf("Average Score:%v\n", s.CalculateAverage()) } func main() { stu := &Student{Name: "李四", Scores: []float64{88, 92, 76, 85, 90}} stu.DisplayInfo() } ``` 这段程序创建了 `Student` 类型及其两个方法——`CalculateAverage()` 来求取平均数以及 `DisplayInfo()` 显示信息;最后实化对象并调用了相应的方法展示结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值