Составление Аrray По Элементам Другого Array

Тема в разделе "C/C++/C#", создана пользователем Blond, 13 ноя 2012.

Статус темы:
Закрыта.
  1. Blond

    Blond Гость

    добрый день, подскажите пожалуйста, в карточной колоде 52 карты, у меня есть массив структур
    где Value 1 2 3 ...13
    suit c h d s
    Код ( (Unknown Language)):
    struct card{
    int value;
    char suit;
    };
    struct board{
    struct card deck[52];
    };
    нужно распечатать имена туз, король, ....10. ...2
    и соответственно
    clubs
    diamonds
    hearts
    spades

    я создала новую структуру
    Код ( (Unknown Language)):
    struct card2{
    char value2[10];
    char suit2[10];
    };

    struct board2{
    struct card2 deck2[10];
    };
    и использовала Strcpy для присвоения
    но ответ не верный....
    Код ( (Unknown Language)):
     void print(struct board str){
    int i;
    struct board2 str2;


    for(i=0; i<10; i++){
    printf("Card Value: %d Suit: %c \n", str.deck[i].value , str.deck[i].suit);
    }


    for(i=0; i< 10; i++){
    if(str.deck[i].value = 13)
    strcpy(str2.deck2[i].value2, "ace");
    else if(str.deck[i].value = 12)
    strcpy(str2.deck2[i].value2, "king");
    else if(str.deck[i].value = 11)
    strcpy(str2.deck2[i].value2, "dama");
    else if(str.deck[i].value = 10)
    strcpy(str2.deck2[i].value2, "jack");
    else if(str.deck[i].value = 9)
    strcpy(str2.deck2[i].value2, "10");
    else if(str.deck[i].value = 8)
    strcpy(str2.deck2[i].value2,"9");
    else if(str.deck[i].value = 7)
    strcpy(str2.deck2[i].value2,"8");
    else if(str.deck[i].value = 6)
    strcpy(str2.deck2[i].value2,"7");
    else if(str.deck[i].value = 5)
    strcpy(str2.deck2[i].value2,"6");
    else if(str.deck[i].value = 4)
    strcpy(str2.deck2[i].value2,"5");
    else if(str.deck[i].value = 3)
    strcpy(str2.deck2[i].value2,"4");
    else if(str.deck[i].value = 2)
    strcpy(str2.deck2[i].value2,"3");
    else if(str.deck[i].value = 1)
    strcpy(str2.deck2[i].value2,"2");
    }

    for(i=0; i <10; i++){

    if(str.deck[i].suit = 'c')
    strcpy(str2.deck2[i].suit2 , "clubs");
    else if(str.deck[i].suit = 'd')
    strcpy(str2.deck2[i].suit2 , "diamonds");
    else if(str.deck[i].suit = 'h')
    strcpy(str2.deck2[i].suit2, "hearts");
    else if(str.deck[i].suit = 's')
    strcpy(str2.deck2[i].suit2 , "spades");
    }

    for(i=0; i<10; i++){
    printf("Card Value: %s Suit: %s \n", str2.deck2[i].value2, str2.deck2[i].suit2);
    }
    спасибо, может другой способ есть?
    или Struct2 не верно задано?

    вот структура какая была и ее надо изменить
    Card Value: 10 Suit: s
    Card Value: 9 Suit: s
    Card Value: 8 Suit: s
    Card Value: 7 Suit: h
    Card Value: 6 Suit: s
    Card Value: 5 Suit: d
    Card Value: 4 Suit: d
    Card Value: 3 Suit: h
    Card Value: 1 Suit: c
    Card Value: 1 Suit: d

    а вот что получается(((
    Card Value: ace Suit: clubs
    Card Value: ace Suit: clubs
    Card Value: ace Suit: clubs
    Card Value: ace Suit: clubs
    Card Value: ace Suit: clubs
    Card Value: ace Suit: clubs
    Card Value: ace Suit: clubs
    Card Value: ace Suit: clubs
    Card Value: ace Suit: clubs
    Card Value: ace Suit: clubs
     
  2. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    опиши нормально задачу, я ниче не понял. Но код опять какой-то ужасный.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей