编写这两个for循环的正确方法是哪一种?

时间:2019-02-18 12:25:49

标签: c

我希望创建两个具有不同整数输出的循环。这样我就可以识别出哪一个。我将不得不在主函数中添加更多这样的循环,因此我正在寻找最简单的解决方案。

这是正确的吗?

#include <stdlib.h>
#include <math.h>
#define MAX_CARS 1000
main()
{
    double carsTimeheadA[MAX_CARS], carsTimeheadB[MAX_CARS];
    int i,z,n;
    int j,q,a;
    n=100;
    a=1000;
    for(i=0; i<n; i++)
    {
        for (j=100; j<a; j++)
            carsTimeheadA[i]=0.0;
        carsTimeheadB[j]=0.0;
    }
}

还是这个?

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define MAX_CARS 1000
main()
{
    double carsTimeheadA[MAX_CARS], carsTimeheadB[MAX_CARS];
    int i,z,n;
    int j,q,a;
    n=100;
    a=1000;
    for(i=0; i<n; i++)
    {
        carsTimeheadA[i]=0.0;
    }
    for (j=100; j<a; j++)
    {
        carsTimeheadB[j]=0.0;
    }

}

2 个答案:

答案 0 :(得分:0)

通过查看缩进,您在代码编写和意图之间存在冲突。正确缩进您的循环,如下所示:

for(i=0; i<n; i++)
{
    for (j=100; j<a; j++)
        carsTimeheadA[i]=0.0;
    carsTimeheadB[j]=0.0;
}

这是胡说八道和错误的:您在j上循环了100次左右,以分配给元素i。循环之后,j可能在初始化j元素时指向数组之外。

您是说以下意思吗?

for(i=0; i<MAX_CARS; i++)
{
    carsTimeheadA[i]=0.0;
    carsTimeheadB[i]=0.0;
}

答案 1 :(得分:0)

据我了解,您希望carsTimeheadA的前100个元素具有值1、2、3、4,...,100和carsTimeheadB的前100个元素具有值101、102、103、104,...,200

在这种情况下,您只需要一个循环,如:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define MAX_CARS 1000
int main()
{
    double carsTimeheadA[MAX_CARS], carsTimeheadB[MAX_CARS];
    int i, n;

    n=100;
    for(i=0; i<n; i++)
    {
        carsTimeheadA[i]= 1.0 + i;
        carsTimeheadB[i]= 101.0 + i;
    }

    // ... more code

    return 0;
}