Счетчик не функционирует в c

их представила моя проблема, у меня есть этот struct:

typedef struct
{
    char nombre[20];
    unsigned int dni;
    tfecha nac;
}tperfil;

typedef struct
{
    int d, m, a;
}tfecha;

которого у меня есть array того же самого и идея о счетчике состоит в том, чтобы останавливать, когда встречается с 99 в поле ДЕНЬ (в [или] .nac.d). Так как у меня ранее есть код, который добавляет 99 к полю ДНЯ, когда нет больше данных, чтобы мочь реализовывать лезвие контроля.

int control(const tperfil a[])
{
    int u = 0;
    printf("%u %i\n", a[15].nac.d, u);
    while(a[u].nac.d < 99)
    {
        printf("%u %i\n", a[u].nac.d, u);
        u++;
    }
    return u;
}

Я уже, что в в [15] есть 99 в этом поле, проблема, которая появляется, состоит в том, что, как возможно видеть в первом printf, он показывает мне 99, как он должен бы быть, но второй printf, который является тем, который показывает мне поездку, показывает меня:

23 0
14 1
4 2
25 3
12 4
22 5
31 6
17 7
22 8
4 9
2 10
23 11
15 12
14 13
14 14
420070599 0
23 0
14 1
4 2
25 3
12 4
22 5
31 6
17 7
22 8
4 9
2 10
23 11
15 12
14 13
14 14

я не понимаю, потому что в положении 15 читает мне это число и не 99, которые раньше он появлялся правильно. Программа разбивает.

0
задан 06.01.2017, 18:21
0 ответов