Q:

Regra do For em C

Tenho uma duvida quanto ao ciclo for , ou seja, tenho uma instrução for e tenho de obter o resultado que a maquina dava. 
tenho isto : 
for(x=2,Y=1;X < 11;x++)y+=x++

Sei que a variavel X começa em 2 e Y em 1.
Sei que enquanto X for menor que 11 faz um ciclo. 
Aqui está o meu problema. Qual ciclo. faço x+1 até X ter o valor de 11? Ou faço a regra de fora que é:
  x=x+1
  y=y+x

Obrigado

A:

Para entender melhor, segue seu código com algumas instruções para debug:
int x;
int y;

for( x=2, y=1; x<11; x++ ) {
    printf("antes  x = %d, y= %d \n", x, y );
    y += x++;
    printf("depois x = %d, y= %d \n", x, y );
}
printf("final  x = %d, y= %d \n", x, y );

Eis o resultado:
antes  x = 2, y= 1 
depois x = 3, y= 3 
antes  x = 4, y= 3 
depois x = 5, y= 7 
antes  x = 6, y= 7 
depois x = 7, y= 13 
antes  x = 8, y= 13 
depois x = 9, y= 21 
antes  x = 10, y= 21 
depois x = 11, y= 31 
final  x = 12, y= 31

Veja funcionando no IDEONE.
Resumidamente, a ordem de execução é essa:
for( x=2,y=1; X < 11; x++ ) y += x++
     ---1---  ---2--  -5-   --3- -4-

depois do 5º passo, retorna ao 1º, até a condição do 2º dar false.

