计算课程积分-结构体.c 981 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. typedef struct student{
  4. long ID;
  5. char name[15];
  6. int age;
  7. float s;
  8. float y;
  9. float c;
  10. float w;
  11. float g;
  12. float x;
  13. float aver;
  14. }STU;
  15. void Input(STU *stu)
  16. {
  17. scanf("%ld",&(*stu).ID);
  18. scanf("%s",(*stu).name);
  19. scanf("%d",&(*stu).age);
  20. scanf("%f",&(*stu).s);
  21. scanf("%f",&(*stu).y);
  22. scanf("%f",&(*stu).c);
  23. scanf("%f",&(*stu).w);
  24. scanf("%f",&(*stu).g);
  25. scanf("%f",&(*stu).x);
  26. }
  27. float AverScore(STU stu)
  28. {
  29. float total_score = stu.s * 4 + stu.y * 3 + stu.c * 4 + stu.w * 3 + stu.g * 3 + stu.x * 3;
  30. float total_weight = 4 + 3 + 4 + 3 + 3 + 3; // 总权重
  31. stu.aver = total_score / total_weight; // 计算平均分数
  32. return stu.aver;
  33. }
  34. void Output(STU stu)
  35. {
  36. printf("%ld ", stu.ID);
  37. printf("%s ", stu.name);
  38. printf("%d\n", stu.age);
  39. }
  40. int main()
  41. {
  42. STU stu;
  43. Input(&stu);
  44. float ret = AverScore(stu);
  45. Output(stu);
  46. printf("%.0f", ret);
  47. return 0;
  48. }