有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件“stud“中。


#include<stdio.h>
#include<stdlib.h>
typedef struct{
    int ID;
    int math;
    int English;
    int C;
    int avargrade;
    char name[20];
}Stu;
int main()
{
    FILE*fp;
    Stu stu[5];
    int i,avargrade=0;
    printf("请输入5个同学的信息:学生号,姓名,3门成绩:\n");
    for(i=0;i<5;i++)
    {
        scanf("%d %s %d %d %d",&(stu[i].ID),stu[i].name,&(stu[i].math),&(stu[i].English),&(stu[i].C));
        stu[i].avargrade=(stu[i].math+stu[i].English+stu[i].C)/3;
    }
    
    if((fp=fopen("stud","w"))==NULL)
    {
        printf("error :cannot open file!\n");
        exit(0);
    }
    for(i=0;i<5;i++)
        fprintf(fp,"%d %s %d %d %d %d\n",stu[i].ID,stu[i].name,stu[i].math,stu[i].English,
                stu[i].C,stu[i].avargrade);
    
    fclose(fp);
    // system("pause");
    return 0;
}

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用一个嵌套的循环来计算每名学生平均成绩。首先,需要定义一个二维组来存储每个学生成绩,例如: scores = [[], [], [], [], []] 然后,可以使用一个循环来输入每个学生成绩,例如: for i in range(5): print("请输入第%d个学生的信息:" % (i+1)) name = input("姓名:") scores[i].append(name) for j in range(3): score = float(input("请输入第%d门课成绩:" % (j+1))) scores[i].append(score) 接下来,可以使用另一个循环来计算每名学生平均成绩,例如: for i in range(5): name = scores[i][] total = scores[i][1] + scores[i][2] + scores[i][3] average = total / 3 print("%s的平均成绩为%.2f" % (name, average)) 其,scores[i][]表示第i个学生姓名,scores[i][1]、scores[i][2]、scores[i][3]分别表示该学生三门课成绩。total表示该学生的总成绩,average表示该学生平均成绩。最后,使用print语句输每名学生平均成绩。 ### 回答2: 首先,我们需要从键盘输入五个学生的信息,包括姓名三门程的成绩。这可以通过使用Python的input函来完成。为了方便计算,我们可以使用列表(list)来存储每个学生的信息,每个学生的信息再使用字典(dictionary)来存储。 ``` students = [] # 存储五个学生的信息的列表 # 循环五次输入每个学生的信息 for i in range(5): student_info = {} # 存储一个学生的信息的字典 # 输入学姓名三门程的成绩 student_info['id'] = input('请输入第' + str(i+1) + '个学生的学:') student_info['name'] = input('请输入第' + str(i+1) + '个学生姓名:') student_info['score1'] = float(input('请输入该学生的第1门课成绩:')) student_info['score2'] = float(input('请输入该学生的第2门课成绩:')) student_info['score3'] = float(input('请输入该学生的第3门课成绩:')) students.append(student_info) # 将一个学生的信息添加到列表 ``` 接下来,我们需要计算每个学生平均分平均分可以通过将三门成绩相加,再除以3来计算。我们可以创建一个函来完成这个计算。 ``` def average_score(scores): return sum(scores) / len(scores) ``` 接着,我们可以使用循环来遍历每个学生的信息,计算每个学生平均分,并将结果输。 ``` # 输每个学生平均分 for student in students: avg_score = average_score([student['score1'], student['score2'], student['score3']]) print(student['name'], '的平均分是:', avg_score) ``` 最终,我们就可以得到每个学生平均分了。完整代码如下: ``` # 计算平均分的函 def average_score(scores): return sum(scores) / len(scores) students = [] # 存储五个学生的信息的列表 # 循环五次输入每个学生的信息 for i in range(5): student_info = {} # 存储一个学生的信息的字典 # 输入学姓名三门程的成绩 student_info['id'] = input('请输入第' + str(i+1) + '个学生的学:') student_info['name'] = input('请输入第' + str(i+1) + '个学生姓名:') student_info['score1'] = float(input('请输入该学生的第1门课成绩:')) student_info['score2'] = float(input('请输入该学生的第2门课成绩:')) student_info['score3'] = float(input('请输入该学生的第3门课成绩:')) students.append(student_info) # 将一个学生的信息添加到列表 # 输每个学生平均分 for student in students: avg_score = average_score([student['score1'], student['score2'], student['score3']]) print(student['name'], '的平均分是:', avg_score) ``` ### 回答3: 可以通过以下步骤解决这个问题: 1. 定义一个学生Student,包含学姓名以及三门成绩,以及计算平均成绩的方法。 ``` class Student: def __init__(self, id, name, score1, score2, score3): self.id = id self.name = name self.score1 = score1 self.score2 = score2 self.score3 = score3 def avg_score(self): return (self.score1 + self.score2 + self.score3) / 3 ``` 2. 从键盘输入五个学生的信息,并创建相应的学生对象。 ``` students = [] for i in range(5): id = input("请输入学生{}的学:".format(i+1)) name = input("请输入学生{}的姓名:".format(i+1)) score1 = float(input("请输入学生{}的第一门课成绩:".format(i+1))) score2 = float(input("请输入学生{}的第二门课成绩:".format(i+1))) score3 = float(input("请输入学生{}的第三门成绩:".format(i+1))) student = Student(id, name, score1, score2, score3) students.append(student) ``` 3. 遍历所有学生对象,计算每个学生平均成绩,并输结果。 ``` for student in students: print("{}的平均成绩为:{}".format(student.name, student.avg_score())) ``` 完整代码如下所示: ``` class Student: def __init__(self, id, name, score1, score2, score3): self.id = id self.name = name self.score1 = score1 self.score2 = score2 self.score3 = score3 def avg_score(self): return (self.score1 + self.score2 + self.score3) / 3 students = [] for i in range(5): id = input("请输入学生{}的学:".format(i+1)) name = input("请输入学生{}的姓名:".format(i+1)) score1 = float(input("请输入学生{}的第一门课成绩:".format(i+1))) score2 = float(input("请输入学生{}的第二门课成绩:".format(i+1))) score3 = float(input("请输入学生{}的第三门成绩:".format(i+1))) student = Student(id, name, score1, score2, score3) students.append(student) for student in students: print("{}的平均成绩为:{}".format(student.name, student.avg_score())) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值