统计成绩(C语言)

【题目描述】统计成绩:从键盘输入以下10个学生的学号、姓名,以及数学、语文和英语成绩,写到文本文件f3.txt中,再从文件中取出数据,计算每个学生的总成绩和平均分,并将结果显示在屏幕上。试编写相应程序。

3050801 陈刚 81 75 82

3050802 王媛 87 68 85

3050803 李兵 73 84 80

3050804 曹新 76 81 74

3050805 方亮 83 75 71

3050806 何帆 89 78 91

3050807 季东 82 80 72

3050808 林海 72 76 88

3050809 盛天 89 87 76

3050810 高晶 93 86 85

【代码】

c 复制代码
#include <stdio.h>
#include <stdlib.h>
struct student {
    char sid[10];
    char name[40];
    int math;
    int chinese;
    int eng;
    int sum;
    int aver;
}; 
int main(void) {
    FILE *fp;
    if ((fp=fopen("f3.txt", "w")) == NULL) {
        printf("Can't open file");
        exit(0);}
    fprintf(fp, "    学号     姓名   数学  语文  英语\n");
    for (int i=0; i<10; i++) {
        struct student tmp;
        scanf("%s %s %d %d %d", tmp.sid, tmp.name, &tmp.math, &tmp.chinese, &tmp.eng);
        fprintf(fp, "%s  %s    %d     %d     %d\n", tmp.sid, tmp.name, tmp.math, tmp.chinese, tmp.eng);}
    fclose(fp);

    if ((fp=fopen("f3.txt", "r")) == NULL) {
        printf("Can't open file");
        exit(0);}
    printf("  学号   姓名   数学  语文  英语  总成绩  平均分\n");
    int cnt = 0;
    char ch;
    while (!feof(fp)) {
        if ((ch=fgetc(fp)) == '\n') {
            cnt++;}
        if (cnt>0 && cnt<=10) {
            struct student tmp;
            fscanf(fp, "%s %s %d %d %d", tmp.sid, tmp.name, &tmp.math, &tmp.chinese, &tmp.eng);
            tmp.sum = tmp.math + tmp.chinese + tmp.eng;
            tmp.aver = tmp.sum / 3;
            printf("%s  %s    %d    %d    %d    %d     %d\n", tmp.sid, tmp.name, tmp.math, tmp.chinese, tmp.eng, tmp.sum, tmp.aver);}}
    fclose(fp);
    return 0;}
相关推荐
喜欢吃燃面1 分钟前
Linux 进程信号深度解析:从概念到产生机制
linux·开发语言·学习
AI玫瑰助手3 分钟前
Python基础:字符串的常用内置方法(查找替换分割)
android·开发语言·python
Foreer黑爷11 分钟前
Java并发工具箱:CountDownLatch与CyclicBarrier使用指南
java·开发语言·jvm
syker16 分钟前
AIFerric v2.0 项目总结报告
c语言·开发语言·c++
周杰伦fans27 分钟前
C# CAD二次开发:RotatedDimension 文字边框设置完全指南
开发语言·c#
蚰蜒螟38 分钟前
从 pthread_create 到 thread_native_entry:glibc 如何唤醒 Java 线程
java·开发语言
We་ct41 分钟前
LeetCode 300. 最长递增子序列:两种解法从入门到优化
开发语言·前端·javascript·算法·leetcode·typescript
gCode Teacher 格码致知43 分钟前
Python提高: unittest和 pytest的使用方法-由Deepseek产生
开发语言·python·pytest
Johnstons1 小时前
网络可观测性落地指南:从“出了问题才排查“到“实时感知全网状态“
开发语言·网络·php
念恒123061 小时前
进程--进程状态(上)
linux·c语言