我所要做的就是将我的数组初始化为C中的所有0,但是我的编译器一直给我错误(并且错误没有帮助)。该数组有24个条目,值是浮点值。
main()
{
/* Array of users arrival & departure time */
float user_queue[24];
/* Initialize queue to 0 */
int i;
for(i = 0; i < 24; i++)
{
user_queue[i] = 0.0;
}
/* Simulation time */
float time = 0;
编译器在“浮动时间”行上给出了一个错误。如果我删除for循环,错误就会消失。
语法错误:缺失;在类型之前
答案 0 :(得分:4)
在使用表达式后,可能不允许声明变量。尝试将time
的声明移到顶部:
main()
{
/* Array of users arrival & departure time */
float time, user_queue[24];
/* Initialize queue to 0 */
int i;
for(i = 0; i < 24; i++)
{
user_queue[i] = 0.0;
}
/* Simulation time */
time = 0;
答案 1 :(得分:3)
你用1个元素超越了数组。试试这个:
for(i = 0; i < 24; i++)
将<=
更改为<
。
编辑:有了新信息。
您可能正在使用C89 / 90或ANSI C模式进行编译。在那些较旧的C版本中,变量声明必须位于函数或范围的开头。你不能将声明和代码混合在一起。
试试这个:
main()
{
/* Array of users arrival & departure time */
float user_queue[24];
float time; /* Declare up here */
/* Initialize queue to 0 */
int i;
for(i = 0; i < 24; i++)
{
user_queue[i] = 0.0;
}
/* Simulation time */
time = 0;
答案 2 :(得分:3)
为此你甚至不需要循环:
/* Array of 24 users */
float user_queue[24] = { 0.0 };
这将在没有for循环的情况下将数组初始化为全零。
答案 3 :(得分:2)
<
,而不是<=
,因此:
for( i = 0; i < 24; i++ )
创建这样的数组时:
float user_queue[24]
您正在创建一个包含24个元素的数组,编号为0到23。
关于更新的代码,float time = 0;
需要在main(){.....}
块的开头。在C99之前的C(除了一些实现之外)并没有让你声明变量,除了它们的封闭范围/块的开头。
答案 4 :(得分:0)
这样做:
float user_queue[24] = {0};