为什么在输入后的不到想要的结果


#include
#include
struct student
{
    int id;
    int score;
    int average;
}s1[4];

int main()
{
    double sum=0;
    for(int i=0;i<4;i++)
    {
        
        scanf("%d",&s1[i].score);
        //printf("%lf",s1[i].score);
        sum+=s1[i].score;
        //printf("%lf",sum);
        double avg=sum/4;
        printf("%lf",avg);
        if (avg*11/101;
        }
        else if(avg*10.5/1011/10>s1[i].score)
        {
            s1[i].average=2;
        }
        else
        {
            s1[i].average=3; 
        }
        //printf("%d %d %d\n",s1[i].id,s1[i].score,s1[i].average); 
    }
    return 1;

一.问题分析

首先,你在每次循环时都计算了平均值,但你应该在循环外计算平均值。其次,你没有给结构体数组的 id 字段赋值。另外,你的 return 1; 应该改为 return 0; ,因为通常情况下,程序成功执行会返回0。

二.参考代码

#include<stdio.h>
#include<string.h>

struct student
{
    int id;
    int score;
    int average;
} s1[4];

int main()
{
    double sum = 0;
    for(int i = 0; i < 4; i++)
    {
        s1[i].id = i + 1;
        scanf("%d", &s1[i].score);
        sum += s1[i].score;
    }

    double avg = sum / 4;
    printf("Average: %lf\n", avg);

    for(int i = 0; i < 4; i++)
    {
        if (avg * 11 / 10 < s1[i].score)
        {
            s1[i].average = 1;
        }
        else if (avg * 10.5 / 10 < s1[i].score && avg * 11 / 10 > s1[i].score)
        {
            s1[i].average = 2;
        }
        else
        {
            s1[i].average = 3;
        }
        printf("%d %d %d\n", s1[i].id, s1[i].score, s1[i].average);
    }

    return 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7526763
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:计算输入的非负整数的位数
  • 除此之外, 这篇博客: 到底什么是线性表?中的 线性表的定义 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    线性表是具有「相同数据类型」的n(n≥0)个数据元素的「有限序列」,其中n为元素的个数,当n = 0时,线性表为空

    假设线性表名为L,则一般表示为 L= {a1,a2,a3,…,aj,a(j + 1),…,an}

    线性表的几个概念

    • aj是线性表的 “第 j 个” 属性,是线性表中的「位序」
    • a1是「表头」元素(线性表的第一个元素),an是「表尾」元素(线性表的最后一个元素)
    • 除第一个元素外,每个元素都有且只有一个「前驱」元素
    • 除最后一个元素外,每个元素有且只有一个「后继」元素
      在这里插入图片描述
  • 您还可以看一下 张传波老师的软件设计是怎样炼成的?课程中的 架构设计的第一层拆解小节, 巩固相关知识点

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^