2201_75666318 2023-03-02 00:46 采纳率: 60%
浏览 34
已结题

c语言编程问题求解代码

设有5个学生的相关数据,每个学生的数据为一个结构体,包括学号、姓名、两门功课的成绩及平均成绩。编写一个程序,要求输入每个学生的所有数据,并计算各个学生的平均成绩,然后依次输出各个学生的数据(学号、姓名、各门课程成绩及平均成绩)。要求学号为整型、姓名为长度为8的字符数组、成绩为浮点数从键盘输入5 个学生数据,要求:定义学生结构体.分别编写子函数实现学生数据的输入、计算等功能,结果在主函数中输出。

  • 写回答

2条回答 默认 最新

  • Taylor 淡定哥 2023-03-02 03:21
    关注

    定义了一个名为 Student 的结构体,包含学号、姓名、两门课程的成绩及平均成绩。程序中使用了两个子函数,分别用于输入学生数据和计算学生平均成绩。最后,程序在主函数中依次输出了每个学生的数据。

    #include <stdio.h>
    #include <string.h>
    
    // 定义学生结构体
    typedef struct {
        int id;
        char name[8];
        float score1;
        float score2;
        float average;
    } Student;
    
    // 函数:输入学生数据
    void inputStudentData(Student *student) {
        printf("请输入学号:");
        scanf("%d", &student->id);
    
        printf("请输入姓名:");
        scanf("%s", student->name);
    
        printf("请输入第一门课程成绩:");
        scanf("%f", &student->score1);
    
        printf("请输入第二门课程成绩:");
        scanf("%f", &student->score2);
    
        student->average = (student->score1 + student->score2) / 2;
    }
    
    // 函数:计算学生平均成绩
    void calculateStudentAverage(Student *student) {
        student->average = (student->score1 + student->score2) / 2;
    }
    
    int main() {
        Student students[5];
    
        // 输入每个学生的数据并计算平均成绩
        for (int i = 0; i < 5; i++) {
            printf("请输入第 %d 个学生的数据:\n", i + 1);
            inputStudentData(&students[i]);
            calculateStudentAverage(&students[i]);
        }
    
        // 输出每个学生的数据
        for (int i = 0; i < 5; i++) {
            printf("学号:%d, 姓名:%s, 成绩1:%.2f, 成绩2:%.2f, 平均成绩:%.2f\n",
                   students[i].id, students[i].name, students[i].score1, students[i].score2, students[i].average);
        }
    
        return 0;
    }
    
    
    

    在上面的程序中,定义了一个名为 Student 的结构体,包含了学号、姓名、两门课程的成绩及平均成绩。在 inputStudentData 函数中,使用 scanf 函数从键盘输入学生数据。在 calculateStudentAverage 函数中,根据学生的两门课程成绩计算出平均成绩。

    在主函数中,定义了一个长度为 5 的 Student 数组,用于存储 5 个学生的数据。然后,使用 for 循环依次输入每个学生的数据并计算平均成绩。最后,再使用 for 循环依次输出每个学生的数据。其中,使用了 %d、%s、%.2f 等格式化输出控制符,用于将学生的数据输出为指定的格式。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月10日
  • 已采纳回答 3月2日
  • 创建了问题 3月2日

悬赏问题

  • ¥15 Mac虚拟机安装Windows,Windows中用idea跑项目,报错process finished with exit code -1073741819(0xc0000005) 如何解决?
  • ¥15 关于python爬虫返回js数据结构的处理
  • ¥15 ubuntu所用stm32标准库开发烧录没反映
  • ¥15 运维工程师(在职人员回答)
  • ¥15 Kmeans的趋势分析有会的吗
  • ¥20 R语言单细胞测序 对seurat对象进行标准化时出现问题
  • ¥15 请问如何在matlab里使用raven工具?
  • ¥100 关于ios手游充值到一定金额,再点充值提示公众号的问题。
  • ¥15 求一个stm32串口控制程序
  • ¥20 Windows 驱动开发版本疑问相关