Здравствуйте Alex, вы писали:
A>Я что не могу понять, почему программа работает? A>Почему второй printf() отрабатывает как требуется? A>(У учителя чуть глуза не выпали, когда он увидел это.)
A>#include <stdio.h> A>#include <conio.h> A>void main() A>{ A> int n1,n2,n3,n4,n5; A> printf("Enter five numbers (integers): "); A> scanf("%d%d%d%d%d",&n1,&n2,&n3,&n4,&n5); A> printf("The negative order of %d, %d, %d, %d, %d is %d, %d, %d, %d, %d",n1,n2,n3,n4,n5); A> getch(); A>}
A>Разъясните глупому, пожалуйста. Спасибо.
Особенности реализации printf. Похоже, что локальные переменные n1...n5 удачно дополняют стек вызова printf до корректного. Если бы в функции было больше локальных переменных, фокус бы не получился.
А вообще, программы могут глючить массой разных способов. Иногда отловишь очередной баг в своем коде шестимесячной давности, смотришь в него и думаешь: а как же это раньше работало?