Test Level

时间: 1ms        内存:128M

描述:

注:本题只需要提交填写部分的代码,请按照C语言方式提交。

有的学校会对学生的成绩进行分级。假设某个学校将学生的成绩分成ABCD四个等级,每个学生需要考八门课程。在某学生一次考试之后,学校给了成绩等级,求该生的每个等级有多少门课程?

#include <stdio.h>

#include <stdlib.h>

int main()

{

    int *arr,i;

    char grade[10];

    //此处填写一行calloc函数

    scanf("%s",grade);

    for(i=0;i<8;++i)

        arr[grade[i]-‘A’]++;

    printf("A:%d\n",arr[0]);

    printf("B:%d\n",arr[1]);

    printf("C:%d\n",arr[2]);

    printf("D:%d\n",arr[3]);

    free(arr);

    return 0;

}

输入:

输入一行八个由ABCD组成的字母,表示该生的成绩。

输出:

输出对应的等级有多少门课程。

示例输入:

ABCDABCD

示例输出:

A:2
B:2
C:2
D:2

提示:

参考答案(内存最优[1092]):


#include <stdio.h>
#include <stdlib.h>
int main()
{
    int *arr,i;
    char grade[10];     arr=(int *)calloc(20,sizeof(int));
    scanf("%s",grade);
    for(i=0;i<8;++i)
        arr[grade[i]-'A']++;
    printf("A:%d\n",arr[0]);
    printf("B:%d\n",arr[1]);
    printf("C:%d\n",arr[2]);
    printf("D:%d\n",arr[3]);
    free(arr);
    return 0;
}

参考答案(时间最优[0]):


#include <stdio.h>
#include <stdlib.h>
int main()
{
    int *arr,i;
    char grade[10];arr=(int*)calloc(4,sizeof(int));
    scanf("%s",grade);
    for(i=0;i<8;++i)
        arr[grade[i]-'A']++;
    printf("A:%d\n",arr[0]);
    printf("B:%d\n",arr[1]);
    printf("C:%d\n",arr[2]);
    printf("D:%d\n",arr[3]);
    free(arr);
    return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。