关于switch选择结构解决方案

关于switch选择结构
为什么下面这样不可仪呢?
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
  int a ;
  scanf ("%d" , &a ) ;
  switch (a)
  {
  case >0 : printf("ok") ; break ;
  case <0 : printf("oh ,no") ; break ;
  default : ; 
  }
  system("pause") ;
  return 0 ;
}

请问case 后面只能跟确定的值, 不能跟判断式吗?
能的话该怎么改?谢谢

------解决方案--------------------
switch (a>0)
case true
case false
------解决方案--------------------
在case中肯定不能进行条件判断.
你用嵌套的if else 不就解决了吗?
------解决方案--------------------

int main(void) 

int a ; 
int charge;
scanf ("%d" , &a ) ;
charge = a;
switch (charge>0) 

case (1) : printf("ok") ; break ; 
case (0) : printf("oh ,no") ; break ; 
default : ;

system("pause") ; 
return 0 ; 


用if-else多好,switch的优点不在这种简单的逻辑判断里,主要用在用于多分支选择语句中.
------解决方案--------------------
case只能接确定的值
楼主那样的用if, else if, else
------解决方案--------------------
只有ture and false 用if{} else{}是不是更简单
------解决方案--------------------
case 只能和确定的值比较,不能比较条件。后面可接整形,字符型等等
------解决方案--------------------
case (charge>0) : printf("ok") ; break ;
 case (charge <0) : printf("oh ,no") ; break ; 
case label does not reduce to an integer constant 应该是这个错误 !!
------解决方案--------------------
printf("输入多项式%s 的项(共%d项):\n" , L , n ) ;
输不出是因为你的L是结构,而输出格式是字符串,当然不能打印出信息了.
------解决方案--------------------
L不是C语言的内置类型,是你自己定义的,故不能直接用printf语句来输出!若是你用的是VC++的话,而可以考虑重载来输出!若用的是TC,则除了自己写隔函数外,实在没法!
------解决方案--------------------
switch语句的格式为
switch(表达式)
{
case 常量表达式1: 语句1
case 常量表达式2: 语句2
^^^^^
case 常量表达式n: 语句n
default: 语句n+1
}

所以case只能加表达式,得到一个常量
如果要用判断式我想能这样改:

#include <stdio.h> 
#include <stdlib.h> 
int main(void) 

int a ; 
scanf ("%d" , &a ) ; 
if(a>0) 
a=0;
else
a=1;
switch (a) 

case 0 : printf("ok") ; break ; 
case 1 : printf("oh ,no") ; break ; 
default : ;

system("pause") ; 
return 0 ; 


------解决方案--------------------
多项式名字??在你的程序里根本没有看到有任何字符串啊.
如果是结构成员,可以printf("输入多项式%s 的项(共%d项):\n" , L->name , n ) ;打印出来的.

------解决方案--------------------
C/C++ code

#include <stdio.h> 
#include <stdlib.h> 

int main(void) 
{ 
    int a ; 
    scanf ("%d", &a);

    switch (a > 0) 
    { 
    case 1 : 
        printf("ok");
        break ; 
    case 0 :
        printf("oh ,no");
        break ; 
    default :
        break;  
    } 
    
    system("pause");

    return 0; 
}