no entendi muy bien, el primer codigo que pusiste funciona bien, excepto por que me parece que el primer fflush(stdin); esta de mas.
fflush(stdin); sirve para borrar el bufer del teclado entonces cunado tu escribas 1 2 3 4 5, scanf solo tomara hasta el primer espacio y los demas numeros quedan guardados en el buffer, aqui es donde entra fflush(stdin); borrando el buffer y evitando que estos se almacenen en el siguiente scanf
fflush(stdin); sirve para borrar el bufer del teclado entonces cunado tu escribas 1 2 3 4 5, scanf solo tomara hasta el primer espacio y los demas numeros quedan guardados en el buffer, aqui es donde entra fflush(stdin); borrando el buffer y evitando que estos se almacenen en el siguiente scanf
Código [Seleccionar]
#include <stdio.h>
int main(void)
{
int a;
int b;
printf("ingrese el valor de a: \n");
scanf("%d",&a);
fflush(stdin);//para vaciar el buffer del teclado
printf("ingrese el valor de b: \n");
scanf("%d",&b);
fflush(stdin);//para vaciar el buffer del teclado
printf("\n a= %d\n",a);
printf("\n b= %d\n",b);
return 0;
}