У меня есть целочисленный массив (представляющий 4-значное число), который мне нужно увеличить, чтобы каждое целое число никогда не превышало 3. В принципе, ему нужно распечатать каждое четырехзначное число, которое делает не имеет 4 или выше. Вот результат я ожидаю, по сравнению с фактическими результатами:Увеличение массива до определенного числа
Expected: 0000 0001 0002 0003 0010 0011 0012 0013 0020 0021 0022 .... 3333
Received: 0000 1000 2000 3000 3100 3200 3300 3310 3320 3330 3331 3332
Я знаю, что мой алгоритм перепутался, но я не знаю, что делать с ним:
int i, c[4];
memset(c, 0, sizeof(c));
i = 0;
while (1) {
testprint(c);
c[i]++;
if (c[i] == 3)
i++;
if (i == 3)
break;
}
Все testprint
делает дисплей каждая цифра в массиве. Итак, как мне изменить свой код, чтобы правильно увеличить массив? И мне даже нужно использовать массив? Как я могу это сделать без этого?
Ваш код не печатает никакие '4' ... вы уверены, что это ваш реальный выход? –
Если вы хотите напечатать каждые 4 цифры, вам нужно будет добавить еще несколько логик. В настоящее время вы зацикливаете первую цифру, а затем вторую и т. Д., Это не будет получать номера, где первая цифра ниже второй цифры, например. –
@ M.M жаль насчет '4' s, это было из предыдущей версии ... –