Turbo Carrays问题

我只是想问一下我的代码。

#define LIM 40 main() { int day=0; float temp[LIM]; clrscr(); do { printf("Enter temperature for day %d.", day); scanf("%f", &temp[day]); } while(temp[day++] > 0) } 

我正在使用TurboC,此代码重复要求用户输入温度并将响应存储在数组temp中 ,直到输入0或更低的温度。 我已经使用#define指令给标识符LIM赋值40,因为我希望这个程序接受任意数量的温度,最多可达40个。 但它实际上接受了多达48个 ……我该怎么做才能使它能够只接受40个?

提前致谢

将while中的条件更改为以下: while (temp[day++] > 0 && day < LIM)