我正在用c代码编写程序,该代码旨在根据您输入的数值返回字母等级,但每次都返回相同的错误,我似乎无法弄清楚。
#include <stdlib.h>
#include <stdio.h>
char lettergrade(float numgrade);
int main(void);
{
float numgrade;
char grade;
printf(" what is your numerical grade? ");
scanf("%f", &numgrade);
grade = lettergrade (numgrade);
printf("here is your letter grade: %c ", grade);
system("pause");
return(0);
}
char lettergrade(float numgrade);
{
if (numgrade < 50)
{
lettergrade = 'D';
}
if (numgrade <= 50 && numgrade < 65)
{
lettergrade = 'C';
}
if (numgrade <= 65 && numgrade < 80)
{
lettergrade = 'B';
}
if (numgrade >= 80)
{
lettergrade = 'A';
}
return(0);
}
答案 0 :(得分:3)
你有两次同样的错误:
char lettergrade(float numgrade);...
- &GT; char lettergrade(float numgrade)...{}
int main(void); ...
- &GT; int main(void) ...{}
但除此之外,您的代码还有其他错误,这两个被掩盖: - (
lettergrade = 'D';
不合法,因为lettergrade
是函数名称(因此不是&#34;左值&#34; ,这意味着您无法使用为它分配一个值),它应该是这个上下文中的一个变量。改为:
char lettergrade(float numgrade)
{
char tmp;
if (numgrade < 50)
{
tmp = 'D';
}
if (numgrade <= 50 && numgrade < 65) // also, this probably should be if (numgrade >= 50 && ...
{
tmp = 'C';
}
if (numgrade <= 65 && numgrade < 80) // same goes here
{
tmp = 'B';
}
if (numgrade >= 80)
{
tmp = 'A';
}
// return tmp
/* consider returning tmp, since always returning (0)
makes this whole function redundant (your current
function just returns 0, no matter what the input is) */
return(0);
}
答案 1 :(得分:2)
int main(void);
^函数声明。
int main(void) { ... }
^功能定义;函数体介于{
}
之间。
int main(void); { ... }
^语法错误;不能同时拥有;
和{
}
。