[英]My c function returns gibberish
So basically whenever I input a grade it gives me back a random symbol, even though I have defined grade. 因此,基本上,每当我输入成绩时,即使我定义了成绩,它也会给我一个随机符号。 Wouldn't it better if i used the value from
return grade;
如果我使用
return grade;
的值会更好吗return grade;
but I don't know how to retrieve that character into my main function :< 但我不知道如何将该字符检索到我的主要功能中:<
#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;
}
Change the function GradeFromPercentage
, you were assigning char*
instead of char
更改函数
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;
}
You assign strings to a char
variable in GradeFromPercentage()
. 您可以在
GradeFromPercentage()
字符串分配给char
变量。 You should use character constants with single quotes instead of character strings with double quotes. 您应该使用带单引号的字符常量,而不是带双引号的字符串。
Here is a corrected and simplified version: 这是一个经过纠正和简化的版本:
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';
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.