例题9-3 修改学生成绩分数 15作者 张泳单位 浙大城市学院输入n(n<50)个学生的成绩信息,再输入一个学生的学号、课程以及成绩,在自定义函数update_score()中修改该学生指定课

输入样例:

3
101 Zhang 78 87 85
102 Wang 91 88 90
103 Li 75 90 84
102 2 89

输出样例:

在这里给出相应的输出。例如:

102,91,89,90

#include 
struct student{       /*学生信息结构定义*/
  int num;            /* 学号 */
  char name[10];      /* 姓名 */
  int math, english, computer;   /* 三门课程成绩 */
}; 
int update_score(struct student *p, int n, int num, int course, int score); /*函数声明*/

int main(void)
{    
  int i, pos, n, num, course, score;
  struct student students[50];   /* 定义结构数组 */
  scanf("%d", &n);
  for(i = 0; i < n; i++){
    scanf("%d", &students[i].num);
    scanf("%s", students[i].name); 
    scanf("%d", &students[i].math); 
    scanf("%d", &students[i].english); 
    scanf("%d", &students[i].computer);
  }

  /* 输入待修改学生信息 */
  scanf("%d", &num);
  scanf("%d", &course);
  scanf("%d", &score);

  /*调用函数,修改学生成绩*/
  pos = update_score(students, n, num, course, score);

  /*输出修改后的学生信息*/
  if(pos == -1)
    printf("Not found!\n");
  else
  {  printf("%d,%d,%d,%d\n", students[pos].num, students[pos].math, students[pos].english, students[pos].computer);
  }

  return 0;
}

/* 请在这里填写答案 */
int update_score(struct student *p, int n, int num, int course, int score){
    int i,pos;
    for(i=0;inum==num)break;               //书上的例子;
    }//找到要修改的人的学号;
    if(imath=score;break;
            case 2:p->english=score;break;
            case 3:p->computer=score;break;
        }
        pos=i;//修改好后,返回别修改的下标;
    }else{
        pos=-1;
    }
    return pos;
}

你可能感兴趣的:(算法,c语言,c++)