【发布时间】:2020-04-08 20:04:41
【问题描述】:
string reading_lev(int a, int b, int c)
{
float L = (a / b) * 100;
float S = (c / b) * 100;
float index = 0.0588 * L - 0.296 * S - 15.8;
if (round(index) <= 16 && round(index) >= 1)
{
string val = printf("Grade %f", index);
}
else if (round(index) > 16)
{
string val = printf("Grade 16+");
}
else
{
string val = printf("Before Grade 1");
}
return val
}
错误出现在第一个 if 块中。涉及到 cs50 库。
错误:使用“int”类型的表达式初始化“string”(又名“char *”)的不兼容整数到指针转换 [-Werror,-Wint-conversion]
【问题讨论】:
-
string val = printf(...)?printf返回一个int,你需要分配空间然后使用snprintf返回一个字符串。 -
val只存在于右大括号}之前,因此return也应该会产生错误。 -
@user3386109 并且在返回语句中也缺少
;。