A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. /*
  2. 2.某班有5个学生,三门课。分别编写3个函数实现以下要求:
  3. (1) 求各门课的平均分;
  4. (2) 找出有两门以上不及格的学生,并输出其学号和不及格课程的成绩;
  5. (3) 找出三门课平均成绩在85-90分的学生,并输出其学号和姓名
  6. */
  7. #include <stdio.h>
  8. typedef struct {
  9.     char name[20];//课程名称
  10.     float score;//课程分数
  11. }Score;

  12. typedef struct {
  13.     int number;//学号
  14.     char name[20];//姓名
  15.     Score courses[3];//三门课程
  16. }student;
  17. //求三门课的平均成绩
  18. void averageScore(student arr[] ,int arr_len ){
  19.    
  20.     for(int j = 0; j<arr_len;j++){
  21.         float average = 0.0f;
  22.         for (int i = 0; i < 3; i++) {
  23.             average += arr[j].courses[i].score;
  24.         }
  25.         average /= 3;
  26.         if (average >= 85 && average <= 90) {
  27.             printf("学号:%d 姓名:%s 的平均分在 85-90之间\n",arr[j].number,arr[j].name);
  28.         }
  29.     }
  30.    
  31. }

  32. //求每一门课总的平均成绩
  33. void averageEvery( student arr[],int arr_len ){
  34.    
  35.     for (int i = 0; i < 3; i++) {
  36.         float averageEveryScore;
  37.         float sum = 0.0f;
  38.         for (int j = 0; j < arr_len; j++) {
  39.             sum += arr[j].courses[i].score;
  40.         }
  41.         averageEveryScore = sum / arr_len;
  42.         printf("%s 的平均分数是 %.2f\n",arr[i].courses[i].name,averageEveryScore);
  43.     }
  44. }
  45. //至少两门低于60
  46. void printPoorStudent(student arr[],int arr_len){
  47.    
  48.     for (int i = 0; i < arr_len; i++) {
  49.         int count = 0;
  50.         for (int j = 0; j < 3; j++) {
  51.             if (arr[i].courses[j].score < 60) {
  52.                 count++;
  53.             }
  54.         }
  55.         if (count > 1) {
  56.             printf("%s 的学号是: %d\n",arr[i].name,arr[i].number);
  57.             for (int k = 0; k < 3; k++) {
  58.                 if (arr[i].courses[k].score < 60) {
  59.                     printf("%s : %.2f\n",arr[i].courses[k].name,arr[i].courses[k].score);
  60.                 }
  61.             }
  62.         }
  63.     }
  64.    
  65. }



  66. int main(int argc, const char * argv[]) {
  67.    
  68.     student person[5] = {
  69.         {1,"liujiaping","yuwen",99,"shuxue",98,"yingyu",59},
  70.         {2,"liuqiangsheng","yuwen",58,"shuxue",76,"yingyu",45},
  71.         {3,"malibo","yuwen",67,"shuxue",67,"yingyu",90},
  72.         {4,"duantaiyang","yuwen",65,"shuxue",56,"yingyu",45},
  73.         {5,"zhouyu","yuwen",45,"shuxue",36,"yingyu",45},
  74.     };
  75.     averageEvery( person,5 );
  76.    
  77.     printf("------------------------\n");
  78.     printPoorStudent(person,5);
  79.     printf("------------------------\n");
  80.     averageScore(person ,5 );
  81.    
  82.     return 0;
  83. }
复制代码


1 个回复

正序浏览
你的分好快啊!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马