Marcccccy 发表于 2020-4-21 08:58:00

“计算平均成绩”,涉及结构体

是一道补充程序的题目,所以代码并不完整,带*的地方就是需要补充的地方
请问第一行 这里可以直接这样写嘛,不需要 #inlude<stdio.h> 嘛?
然后第12行的 pst->average 是什么意思鸭……
#include struct STUDENT
{
        char name;
        int math;
        int english;
        int computer;
        int average;
};

void GetAverage(struct STUDENT *pst)
{
        int sum=0;
        sum=/****1****/;
        pst->average=sum/3;
}

int main()
{
        int i;
        struct STUDENT st={{"Jessica",98,95,90},{"Mike",80,80,90}, {"Linda",87,76,70},{"Peter",90,100,99} }; for(i=0;i<4;i++) { GetAverage( /****2****/ ); }
                for(i=0;i<4;i++)
                        printf("%s,%d,%d,%d,%d\n",st.name,st.math,st.english,st.computer,st.average);
        return 0;
}

sunrise085 发表于 2020-4-21 09:09:23

那两处帮你写好了,你有疑问的地方也帮你写了注释。
#include <stdio.h>//这里肯定是错的。当然需要加载<stdio.h>文件啦!
struct STUDENT
{
      char name;
      int math;
      int english;
      int computer;
      int average;
};

void GetAverage(struct STUDENT *pst)
{
      int sum=0;
      sum=pst->math+pst->english+pst->computer;
      pst->average=sum/3; //pst是一个指针,用指针调用成员就是用箭头啊
}

int main()
{
      int i;
      struct STUDENT st={{"Jessica",98,95,90},{"Mike",80,80,90}, {"Linda",87,76,70},{"Peter",90,100,99} };
      for(i=0;i<4;i++){
            GetAverage( &st );
      }
      for(i=0;i<4;i++)
            printf("%s,%d,%d,%d,%d\n",st.name,st.math,st.english,st.computer,st.average);
      return 0;
}

Marcccccy 发表于 2020-4-21 14:02:31

sunrise085 发表于 2020-4-21 09:09
那两处帮你写好了,你有疑问的地方也帮你写了注释。

明白辽,谢谢!!{:10_298:}
页: [1]
查看完整版本: “计算平均成绩”,涉及结构体