我的c函数返回乱码

时间:2016-11-13 16:19:59

标签: c function

所以基本上每当我输入成绩时,它都会给我一个随机符号,即使我已经定义了成绩。如果我使用return grade;中的值但是我不知道如何将该字符检索到我的主函数中,那会不会更好:<

#include <stdio.h>

char GradeFromPercentage(float percentage);

int main() {
    float percentage1;
    printf("Enter the student's percentage:");
    scanf("%f", &percentage1);
    printf("Student's grade is %c \n", GradeFromPercentage(percentage1));
    return 0;
}

char GradeFromPercentage(float percentage) {
    char grade;
    if (percentage >= 90) {
        grade = "A";
    } else
    if (percentage >= 70) {
        grade = "B";
    } else
    if (percentage >= 50) {
        grade = "C";
    } else
    if (percentage >= 30) {
        grade = "D";
    } else {
        grade = "F";
    }
    return grade;
}

2 个答案:

答案 0 :(得分:2)

更改功能GradeFromPercentage,您指定了char*而不是char

char GradeFromPercentage(float percentage)
{

    char grade;
    if (percentage >= 90)
    {
        grade = 'A';
    }
    else if (percentage >= 70)
    {
        grade = 'B';
    }
    else if (percentage >= 50)
    {
        grade = 'C';
    }
    else if (percentage >= 30)
    {
        grade = 'D';
    }
    else
    {
        grade = 'F';
    }
    return grade;
}

答案 1 :(得分:1)

您可以将字符串分配给char中的GradeFromPercentage()变量。您应该使用带单引号的字符常量,而不是带双引号的字符串。

以下是更正后的简化版本:

char GradeFromPercentage(float percentage) {
    if (percentage >= 90) {
        return 'A';
    }
    if (percentage >= 70) {
        return 'B';
    }
    if (percentage >= 50) {
        return 'C';
    }
    if (percentage >= 30) {
        return 'D';
    }
    return 'F';
}