c语言多个case 放一起,这样的case和if一起运用有问题吗?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

void main()                                                    /*主函数界面*/

{

struct student *head;

head=NULL;                                                    /*定义链表头为空值*/

float a;

for(;;)                                                       /*无限循环显示菜单*/

{

switch(menu_select())                                        /*调用主菜单函数,返回值整数作开关语句的条件*/

{

case 1:head=creat();settle_score(head);break;               /*创建链表*/

case 2:printf("\nplease select:");scanf("%f",&a);

if(a==2.1) search(head);                             /*查找记录*/

if(a==2.2) print(head);                              /*显示全部记录*/

if(a==2.3) break;                                    /*退出返回主菜单*/

break;

case 3:head=del(head);break;                                /*删除记录*/

case 4:modify(head);settle_score(head);break;               /*修改记录*/