当前位置: 代码迷 >> C语言 >> [求助]刚学C问个if转switch问题
  详细解决方案

[求助]刚学C问个if转switch问题

热度:186   发布时间:2006-11-10 23:45:35.0
[求助]刚学C问个if转switch问题

下面这个IF语句转成switch语句要怎么写:
#include "stdio.h"
main()
{int score=85;
char grade;
grade=stog(score);
printf("score %d is grade %c\n",score,grade);
}
stog(s)
int s;
{if(s>94)return('A');
else if(s>84)return('B');
else if(s>69)return('C');
else if(s>59)return('D');
else return('F');
}

搜索更多相关的解决方案: switch  

----------------解决方案--------------------------------------------------------
#include "stdio.h"
main()
{int score=85;
char grade;
grade=stog(score);
printf("score %d is grade %c\n",score,grade);
}
stog(s)
int s
switch(s)
{
case (s>94):return('A');break;
case (s>84):return('B');break;
case (s>69):return('C');break;
case (s>59):return('D');break;
default
return('f');
}
这是我写的但是错误.不知道哪里不对。
----------------解决方案--------------------------------------------------------

好象要用标志


----------------解决方案--------------------------------------------------------
有这样写case (s>94)的吗?

case 1:
....

stog(s)
{
s=(s+5)/10;
switch(s)
{
case 10:
case 9:return('A');break;
case 8:return('B');break;
case 7:return('C');break;
case 6:return('D');break;
default
return('f');
}
}


----------------解决方案--------------------------------------------------------
对头!case语句中case 表达式x:语句x中的表达式x必须是常量表达式!呵呵!老兄!我也曾经跟你有过一样的经历!
----------------解决方案--------------------------------------------------------

整个程序可以是这样的,我调试通过了。
#include<stdio.h>
char stog(int);
void main()
{
int score=85;
char grade;
grade=stog(score);
printf("score %d is grade %c\n",score,grade);
}
char stog(int s)
{
if(s>74)
{s=(s+5)/10;
switch(s)
{case 10:return('A');break;
case 9:return('B');break;
case 8:return('C');break;
default :return('F');
}
}
else
{
s=s/10;
switch(s)
{case 7:return('C');break;
case 6:return('D');break;
default: return('F');
}
}
}


----------------解决方案--------------------------------------------------------
char stog(int s)//没有返回值,就写void
{
if(s>74)//不需要判断
{s=(s+5)/10;
switch(s) //这里也错了,楼主不是这个意思
{case 10:return('A');break;
case 9:return('B');break;
case 8:return('C');break;
default :return('F');
}
}
else
{
s=s/10;
switch(s)
{case 7:return('C');break;
case 6:return('D');break;
default: return('F');
}
}
}
/*有点烦琐*/

----------------解决方案--------------------------------------------------------
#include<stdio.h>
void main()
{
int score=85;
char grade;
grade=stog(score);
printf("score %d is grade %c\n",score,grade);
}
stog(s)
int s;
{s=(s+5)/10;
switch(s)
{case 10:return('A');break;
case 9:return('B');break;
case 8:return('C');break;
s=s/10;
case 7:return('C');break;
case 6:return('D');break;
default: return('F');
}
}
删删减减的减去了些。谢谢各位,明白了些。虽然还不是全懂
----------------解决方案--------------------------------------------------------
#include<stdio.h>
char stog(int s);
int main()
{
int score=85;
char grade;
grade=stog(score);
printf("score %d is grade %c\n",score,grade);
return 0;
}
char stog(int s)
{
s=(s+5)/10;
switch(s)
{case 10:return('A');break;
case 9:return('B');break;
case 8:return('C');break;
case 7:return('C');break;
case 6:return('D');break;
default: return('F');
}
}
----------------解决方案--------------------------------------------------------
  相关解决方案