I know a statement like the following (commas in place of semi-colons) looks odd:
 if(a<b)printf("Hello\n"),a+=5,b/=5,printf("%d,%d",a,b);
But it works perfectly fine and I had read that it's because comma here acts as a sequence point.I can understand this.But I just fail to understand why the following fails then,where I have used a else as well:
  if(a<b)printf("Hi\n"),else printf("Bye\n"),a+=5,b/=5,printf("%d,%d",a,b);
It gives the error expected expression before 'else'.
Why does the second statement gives error?In the first statement, we saw that comma acts as a sequence point.Then why it doesn't act so before else?What's special about the second case that causes error?Here's my full program:
#include<stdio.h>
int main(void)
{
    int a=30,b=45;
    //if(a<b)printf("Hello\n"),a+=5,b/=5,printf("%d,%d",a,b); //Works well
    if(a<b)printf("Hi\n"),else printf("Bye\n"),a+=5,b/=5,printf("%d,%d",a,b); 
}
 
     
     
     
     
    