1. 程式人生 > >按等級統計學生成績

按等級統計學生成績

本題要求實現一個根據學生成績設定其等級,並統計不及格人數的簡單函式。

函式介面定義:

int set_grade( struct student *p, int n );

其中p是指向學生資訊的結構體陣列的指標,該結構體的定義為:

struct student{
    int num;
    char name[20];
    int score;
    char grade;
};

n是陣列元素個數。學號num、姓名name和成績score均是已經儲存好的。set_grade函式需要根據學生的成績score設定其等級grade。等級設定:85-100為A,70-84為B,60-69為C,0-59為D。同時,set_grade

還需要返回不及格的人數。

裁判測試程式樣例:

#include <stdio.h>
#define MAXN 10

struct student{
    int num;
    char name[20];
    int score;
    char grade;
};

int set_grade( struct student *p, int n );

int main()
{   struct student stu[MAXN], *ptr;
    int n, i, count;

    ptr = stu;
    scanf("%d\n", &n);
    for(i = 0; i < n; i++){
       scanf("%d%s%d", &stu[i].num, stu[i].name, &stu[i].score);
    } 
   count = set_grade(ptr, n);
   printf("The count for failed (<60): %d\n", count);
   printf("The grades:\n"); 
   for(i = 0; i < n; i++)
       printf("%d %s %c\n", stu[i].num, stu[i].name, stu[i].grade);
    return 0;
}

/* 你的程式碼將被嵌在這裡 */

輸入樣例:

10
31001 annie 85
31002 bonny 75
31003 carol 70
31004 dan 84
31005 susan 90
31006 paul 69
31007 pam 60
31008 apple 50
31009 nancy 100
31010 bob 78

輸出樣例:

The count for failed (<60): 1
The grades:
31001 annie A
31002 bonny B
31003 carol B
31004 dan B
31005 susan A
31006 paul C
31007 pam C
31008 apple D
31009 nancy A
31010 bob B
作者: 張泳單位: 浙江大學時間限制: 400ms記憶體限制: 64MB程式碼長度限制: 16KB
int set_grade( struct student *p, int n ){
int count = 0, i;
for(i = 0;i<n;i++,p++){
if(p->score<60){
p->grade = 'D';
count++;
}
else if((p->score<70)&&(p->score>=60)){
p->grade = 'C';
}
else if((p->score<85)&&(p->score>=70)){
p->grade = 'B';
}
else{
p->grade = 'A';
}
}
return count;
}