Мне было предложено заполнить структуру всеми доступными комбинациями из 4 переменных (цвет, форма, nr, p).Инициализация структуры со всеми доступными комбинациями
Все эти переменные могут принимать 3 значения, поэтому я имею в общей сложности 81 комбинацию. Я буду использовать эти комбинации позже, чтобы создать карточную игру.
Комбинации для каждого:
- цвет: г, г, б
- формы: D, E, F
- NR: 1,2,3
- р: J, K , l
Мне сообщили, что для этого достаточно 4 петель, но не могут узнать, как они должны быть сформированы. То, что я думаю, заполняет первые 27 позиций значением для цвета, затем остальные 27 позиций с цветом, а затем остальные с другим цветом. Затем начинают заполнять фигуру, а после этого nr и т. Д. Но у меня слишком много циклов, и не только 4, которые должны быть достаточными в соответствии с инструкциями.
Это часть большого упражнения, но если я не заполню структуру, я не могу перейти к существенному материалу!
Что мне не хватает?
#include <stdio.h>
#include <stdlib.h>
int i;
typedef struct {
unsigned char colour;
unsigned char shape;
unsigned char nr;
unsigned char p;
} CARDS;
int main()
{
CARDS cards[81];
for (i=0;i<27;i++)
cards[i].colour='r';
for(i=27;i<54;i++)
cards[i].colour='g';
for (i=54;i<81;i++)
cards[i].colour='b';
for (i=0;i<6)
cards[i].shape = 'd';
for (i=0;i<12)
cards[i].shape = 'e';
// a lot more loops..
}
Любопытно аналогичный, но отличается от этого [недавнего вопроса] (http://stackoverflow.com/questions/41288460/how-to-initialize-structure-that-includes-unique-items-out-of-multiple -элементов/41289342). –
Если вы хотите заполнить все '81' перестановки, вы должны использовать четыре * вложенных * петель. –
Ничего себе, я этого не видел! Но так как я действительно новичок в программировании, я не могу использовать профсоюзы. Также это домашнее задание, поэтому нельзя использовать более продвинутые материалы. Спасибо за ваше время в любом случае! Можете ли вы указать один пример вложенных циклов, потому что кажется, что я полностью застрял? Р.Г. – ritgeo