shengxizi 发表于 2020-4-7 10:28:08

求救大佬怎么文件的内容怎么统计

程序功能:已知一个数据文件a.txt中保存了若干个学生的计算机等级考试成绩,包括学号、姓名和成绩。请编程读出显示文件内容并分类统计各等级人数,最后显示统计结果。成绩等级规则:大于等于90-A,大于等于80-B,大于等于70-C,大于等于60-D,60以下-E。
301101   张文    95
301102   陈五    85
301103   程明    75
301104   李文    45
301105   张三    65

pokeyboa 发表于 2020-4-7 13:06:56

装个pandas 库,处理起来不要太简单!

pokeyboa 发表于 2020-4-7 13:28:49

sql 可以实现:
select count(tt.level),tt.level
from
(select id,name,grade,
case
when grade>=90 then 'A'
when grade>=80 then 'B'
when grade>=70 then 'C'
when grade>=60 then 'D'
else 'D'
end as 'level'
from test) as tt
group by tt.level;

shengxizi 发表于 2020-4-7 15:26:12

pokeyboa 发表于 2020-4-7 13:28
sql 可以实现:
select count(tt.level),tt.level
from


C语言

人造人 发表于 2020-4-7 16:01:11

数据已经给你读取到数组中了,剩下的自己写吧

#include <stdio.h>

typedef struct {
    char id;
    char name;
    size_t score;
} student_t;

size_t read_data(student_t student[], FILE *fp) {
    size_t i;
    for(i = 0; fscanf(fp, "%s", student.id) != EOF; ++i) {
      fscanf(fp, "%s", student.name);
      fscanf(fp, "%lu", &student.score);
    }
    return i;
}

void print_data(student_t student[], size_t count) {
    for(size_t i = 0; i < count; ++i)
      printf("%s %s %lu\n", student.id, student.name, student.score);
}

int main(void) {
    student_t student;
    FILE *fp = fopen("student.txt", "r");
    size_t count = read_data(student, fp);
    print_data(student, count);
    fclose(fp);
    return 0;
}
页: [1]
查看完整版本: 求救大佬怎么文件的内容怎么统计