输入一个正整数n,再输入n个学生的姓名和百分制成绩,将其转换为两级制成绩后输出。

要求定义和调用函数set_grade(stu, n),其功能是根据结构数组stu中存放的学生的百分制成绩score,将其转换为两级制成绩,并赋给grade。百分制成绩到两级制成绩的转换规则:大于或等于60分为P,否则为F。

#include<stdio.h>
#define MAXN 100
struct student{
char name[20];
int score;
char grade;
};
void set_grade( struct student *p, int n );

int main()
{
int i, n;
struct student stu[MAXN];
scanf("%d", &n);
for(i = 0; i < n; i++){
scanf("%s%d", stu[i].name, &stu[i].score);
}
set_grade(stu, n);
for(i = 0; i < n; i++)
printf("%s %c\n", stu[i].name, stu[i].grade);
return 0;
}

void set_grade(struct student *p, int n)
{
struct student *q = p + n - 1;
while(填空){
_______________(填空);
_______________(填空);
p++;
}
}

#include<stdio.h>
#define MAXN 100
struct student
{ char name[20];
  int score;
  char grade;
};
void set_grade( struct student *p, int n );

int main()
{ int i, n;
  struct student stu[MAXN];
  scanf("%d", &n);
  for(i = 0; i < n; i++)
  { scanf("%s%d", stu[i].name, &stu[i].score);
  }
  set_grade(stu, n);
  for(i = 0; i < n; i++)
    printf("%s %c\n", stu[i].name, stu[i].grade);
  return 0;
}

void set_grade(struct student *p, int n)
{ struct student *q = p + n - 1;
  while(p<=q)
  { if((*p).score >= 60)(*p).grade = 'P';
    else (*p).grade = 'F';
    p++;
  }
}

温馨提示:答案为网友推荐,仅供参考
相似回答