# unkown number of nested for loops

Discussion in 'C Programming' started by Klaas Vantournhout, Sep 21, 2006.

1. ### Klaas VantournhoutGuest

Hi, Somehow I can't figure this one out.

I have an integer variable N and this N reflects the amount of nested
for loops. I mean

if N = 1, the I have

for (int i1 = ....) {
<code>
}

if N = 2, I have

for (int i1 = ...)
for (int i2 = ...) {
<code>
}

....

if N = n I must have

for (int i1 = ...)
....
for (int in = ...) {
<code>
}

Is there a way to program this disregarding the value of N?

thanks

Klaas Vantournhout, Sep 21, 2006

2. ### Walter RobersonGuest

In article <eeud9t\$37o\$>,
Klaas Vantournhout <> wrote:
>Hi, Somehow I can't figure this one out.

>I have an integer variable N and this N reflects the amount of nested
>for loops. I mean

>if N = n I must have

>for (int i1 = ...)
>...
>for (int in = ...) {
><code>
>}

>Is there a way to program this disregarding the value of N?

int *indices = malloc(N * sizeof(int));

then indices[N-1] corresponds to iN
--
I was very young in those days, but I was also rather dim.
-- Christopher Priest

Walter Roberson, Sep 21, 2006

3. ### jacob naviaGuest

Klaas Vantournhout wrote:
> Hi, Somehow I can't figure this one out.
>
> I have an integer variable N and this N reflects the amount of nested
> for loops. I mean
>
> if N = 1, the I have
>
> for (int i1 = ....) {
> <code>
> }
>
> if N = 2, I have
>
> for (int i1 = ...)
> for (int i2 = ...) {
> <code>
> }
>
> ...
>
> if N = n I must have
>
> for (int i1 = ...)
> ...
> for (int in = ...) {
> <code>
> }
>
>
> Is there a way to program this disregarding the value of N?
>
> thanks

It depends on the value of the upper bound and lower bound obviously
In case all are the same, (upper-lower)^n will do.

For instance:
for (i=0; i<10;i++)
for (j=0; j<10;j++)

<code>

is the same as

for (i=0; i<100; i++)

<code>

100=(10 - 0) ^ 2

jacob

jacob navia, Sep 21, 2006
4. ### Lew PitcherGuest

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Klaas Vantournhout wrote:
> Hi, Somehow I can't figure this one out.
>
> I have an integer variable N and this N reflects the amount of nested
> for loops. I mean
>
> if N = 1, the I have
>
> for (int i1 = ....) {
> <code>
> }
>
> if N = 2, I have
>
> for (int i1 = ...)
> for (int i2 = ...) {
> <code>
> }
>
> ...
>
> if N = n I must have
>
> for (int i1 = ...)
> ...
> for (int in = ...) {
> <code>
> }
>
>
> Is there a way to program this disregarding the value of N?

You /could/ do it with recursion.

i.e.

void function(level)
{
int counter;

for (counter = 1; counter < 10; ++counter)
{
if (level == 0)
{
/* do usefull work */
}
else function(level-1);
}
}

- --
Lew Pitcher

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (MingW32) - WinPT 0.11.12

iD8DBQFFEsmeagVFX4UWr64RAmqyAKChO5IIXIxnQkeIS+sLfoC1/Q2RvgCbBJSH
nvH/USZ2UWB/xno67jwEPBw=
=hmbK
-----END PGP SIGNATURE-----

Lew Pitcher, Sep 21, 2006