首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我怎样才能得到一组包含5个学生成绩的结构的平均值?

我怎样才能得到一组包含5个学生成绩的结构的平均值?
EN

Stack Overflow用户
提问于 2022-05-11 04:19:28
回答 1查看 175关注 0票数 0

这是我的代码,我对C相当陌生。我从txt文件中检索了5个学生的名字和成绩。然后,我必须计算每个学生的平均成绩。我真的很迷茫,迷失了方向,任何帮助都是非常感谢的。下面是关于txt文件的信息:

代码语言:javascript
运行
复制
James
Smith
40 60 70 90 100
Will
Jones
20 21 22 23 24
Jose
Lopez
25 26 27 28 29
Jesus
Diaz
30 31 32 33 34
Iker
Caz
35 36 37 38 39

代码语言:javascript
运行
复制
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

FILE *fp;

int main() {
    int i, j, avg, average, num;
    //Structure which contains elements for the students info//
    struct student {
        char fname[10];
        char lname[10];
        int grade[5];
        int avggrade;
    } student[5];
    
    fp = fopen("file.txt", "r");
    
    //reads file and retrives each students data//
    for (i = 0; i < 5; i++) {
        fscanf(fp, "%s", student[i].fname);
        fscanf(fp, "%s", student[i].lname);
        for (j = 0; j < 5; j++) {
            fscanf(fp, "%d", &student[i].grade[j]);
        }
    }
    //prints out each students data so you can see that the file was read correctly//
    for (i = 0; i < 5; i++) {
        printf("%s\n", student[i].fname);
        printf("%s\n", student[i].lname);
        for (j = 0; j < 5; j++) {
            printf("%d\n", student[i].grade[j]);
        }
    }
    
    //Find average//
    int sum = 0;
    int n = 0;
    for (j = 0; j < n; j++) {
        sum = student[2].grade[j] + sum;    
    }
    printf("%.2f", sum);
}
EN

回答 1

Stack Overflow用户

发布于 2022-05-11 04:25:39

看看你的循环,想想它是如何工作的。它永远不会运行,因为j<n在第一次迭代时为false,当这两个变量都等于0时。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72195375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档