#include<stdio.h>
int main(void)
{
 int a=1,b=0,c=0,d=0,e=0;

 

while(b<5)
{

scanf_s("%d",&c);

 switch (c)
 
 {
 case 0:

  for ( a=1;a<3;a++)
  {
   d=0;
   while(d<5) 
   {
    printf("%d 링크의 전설!!!\n",a); /* for안에 와일꺼 프린트*/
   d++;
   }
   for(e=0;e>-3;e--)
    printf("젤다의 후손 \n");
  }

 break;
 case 3:
 case 4:
 case 5:
  printf("5는 없어");
  if(c<5)/*3,4이면 참*/
  {  
   (c==4 || c==5) && (c!=-1)? printf("아싸 성공!! 광선검 획득\n"):printf("링크 악당되다 ");  /*45 참 3 거짓*/
   printf("젤다는 차원이동 되었다");
  }
  break;
default:
  break;
 }  /*스위치꺼 마침 블럭*/

 b++;
 if(b==4)
  break;
} /*while 꺼 마침 블럭*/
return 0;
}




이건 성공 했는데요     왜 아래 코딩들은 제가 원하는 데로 실행이 안될까요?

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

int a=1,b=0,c=0,d=0,e=0;

scanf("%d",&c);

while(b<5)
{

 

 switch (c)
 {

 case 0:

  for ( a=1;a<3;a++)
  {
   while(d<5) 
   {
    printf("%d 링크의 전설!!!\n",a); // for안에 와일꺼 프린트
   d++;
   }
   for(e=0;e>-3;e--)
    printf("젤다의 후손");
   d=0;
  }
 break;
 case 3:
 case 4:
 case 5:
  if( (c==4 || c==5) && (c!=-1)? printf("아싸 성공!! 광선검 획득\n"):printf("링크 악당되다"))
  {  
   
  }
 break;

  
 
 }//스위치꺼 마침 블럭
 b++;
 if(b==4)
  break;
}//while 꺼 마침 블럭
return 0;
}

애는 스캔에프가 한번밖에 안떠요     잘못된 부분좀 알려주세요 ㅠㅠ