สอบถามเกี่ยวกับลำดับการทำงานของ scanf() และ printf() ???

ผมเพิ่งจะหัดเรียนภาษา C (ตอนใกล้ๆ จะ 30 เอง 555+) วันนี้ก็ลองเขียน Code เรื่อง scanf(); กับ printf();
และก็งงมากเลยครับ เพราะโปรแกรมมันน่าจะเรียงจากบนลงล่าง(ใช่มั้ยครับ?) แต่ที่ผมเจอคือ 

#include  <stdio.h>

int main(void)

{

int a;

printf("a = ");

scanf("%d",&a);

return 0;

}

แต่เหมือนโปรแกรมมันให้ผม Input ค่าเข้าไปก่อน แทนที่มันจะแสดง a = ..... มาก่อน????
อยากสอบถามว่าจะแก้ไขอย่างไรครับ?

ต้องขอรบกวนด้วยครับ
คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 1
พวก printf puts putchar ทำงานกับ stdout ซึ่งเป็น buffered io
คือมันเก็บลง buffer ก่อน
ถ้าต้องการให้มันเอาออกจาก buffer ไปแสดงผลทันที
ต้องใช้ fflush(stdout); ครับ
ลองเรียก fflush(stdout); หลังทำ printf ดู
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่