Switch语句中的浮点数据类型
我正在为一个更大的程序创建一个函数,该函数将获取一个字母等级,该字母等级被输入并存储在程序其他地方的数组中,然后为该字母等级分配一个等级点(即a=4.0,B=3.0等),稍后将在另一个函数中使用,根据存储在另一个数组中的课程时数计算总GPA 我之所以选择使用switch语句,是因为我从以前的编程中熟悉它们,但如果可能的话,我愿意使用更好的方法来完成这项任务。我得到的当前错误是“switch语句不完整”Switch语句中的浮点数据类型,c,visual-studio,function,switch-statement,C,Visual Studio,Function,Switch Statement,我正在为一个更大的程序创建一个函数,该函数将获取一个字母等级,该字母等级被输入并存储在程序其他地方的数组中,然后为该字母等级分配一个等级点(即a=4.0,B=3.0等),稍后将在另一个函数中使用,根据存储在另一个数组中的课程时数计算总GPA 我之所以选择使用switch语句,是因为我从以前的编程中熟悉它们,但如果可能的话,我愿意使用更好的方法来完成这项任务。我得到的当前错误是“switch语句不完整” 必须使用字符或整数值。这里是开关(等级[0])或类似的东西 float GradePoints
必须使用字符或整数值。这里是
开关(等级[0])
或类似的东西
float GradePoints(char grades[])
{
float points = 0.0;
int len = sizeof (grades) / sizeof (grades[0]);
for(int i=0;i<len;i++){
switch (grades[i])
{
case 'A':
points+= 4.0;
break;
case 'B':
points+= 3.0;
break;
case 'C':
points+= 2.0;
break;
case 'D':
points+= 1.0;
break;
case 'F':
points+= 0.0;
break;
}
}
return points;
}
浮动等级点(字符等级[])
{
浮点数=0.0;
int len=sizeof(grades)/sizeof(grades[0]);
对于(int i=0;i一次处理每个等级1。将函数原型更改为:
float GradePoints(char grades[])
到
并将switch语句更改为switch(grade)
。然后在循环中为5个等级中的每个等级调用GradePoints
函数。这与浮点变量或浮点值类型无关,但与如何使用grades[]
作为开关中的表达式
。这应该会产生一个非常大的编译器错误。你读过吗?它说了什么?我还建议你花一些时间,学习如何创建一个。因此,由于我有5个不同的等级要评估,我可以使用一个变量(x)吗然后让它在整个过程中递增?@AndrewC.:是的,你可以在方法中循环,甚至在方法内部循环also@AndrewC.:检查答案…很可能这就是你想要的
float GradePoints(char grade)
{
...
swicth(grade)
{
...
}
return point;
}
..
for(int i=0;i<len;i++)
points+=GradePoints(grades[i]);
float GradePoints(char grades[])
float GradePoints(char grade)