Есть 100 элементов в массиве, все элементы изначально равны нулю. Нужно сделать так, чтобы они начали менять своё значение на 1 или 0 в определённом порядке:
1. Изменить значение всем элементам массива на 1.
2. Поменять значение каждому второму элементу в массиве.
3. поменять значение каждому третьему элементу в массиве.
4. Сделать действие 1-3 ещё 97 раз.
5. Найти все 1 в массиве и показать на экран их индекс.
Задачку взял
отсюда
и всё бы ничего, дело делалось и цвело, но как решил запустить получил это
Не важно, комментировал я все printf'ы или нет, всегда на выхлопе получал это. С чем это связано, и почему работает не так, как должно?
p.s. Для полноты истории скажу, что я понимаю define как штуку которая просто подставит вместо человеческого слова какое то значение.
p.p.s. чтобы не возникало вопросов, то исходник был сохранён и скомпилирован заново.
#include <stdio.h>
#define OPEN 1
#define CLOSE 0
void switch_state(int *status)
{
if(*status == CLOSE)
{
*status = OPEN;
//printf("OPEN");
}
else
{
*status = CLOSE;
//printf("CLOSE");
}
}
int main()
{
int state[100] = {CLOSE};
int i = 0;
while (i != 100)
{
if (i % 2 == 0)
switch_state(&state[i]);
else if(i % 3 == 0)
switch_state(&state[i]);
else
{
switch_state(&state[i]);
//printf("%i\n", state[i]);
}
i++;
}
return 0;
}