Hi guys and girls! I'm currently making a poker game with two players and a single player version that deals 5 cards to each player and it analyses who wins. I need to make it so the player and the dealer are able to change 1 or 2 cards from their hand but I'm not sure how to make it work since the hands aren't stored in an Arrays.

Code:
#include <stdio.h>#include <time.h>#include "stdafx.h"#include <string.h>



#define SUITS 4#define FACES 13#define RANKS 13

//global variablesint straight, flush, four, three;int pairs = 0;

void analyzeHand(int sInHand[], int fInHand[]){    int num_consec = 0;    int rank, suit;

    straight = 0;    flush = 0;    four = 0;    three = 0;    pairs = 0;

    for (suit = 0; suit < SUITS; suit++)        if (sInHand[suit] == 5)            flush = 1;

    rank = 0;    while (fInHand[rank] == 0)        rank++;

    for (; rank < FACES && fInHand[rank]; rank++)        num_consec++;

    if (num_consec == 5) {        straight = 1;        return;    }

    for (rank = 0; rank < RANKS; rank++) {        if (fInHand[rank] == 4)            four = 1;        if (fInHand[rank] == 3)            three = 1;        if (fInHand[rank] == 2)            pairs++;    }

}





void dealCard(int sInHand[], int fInHand[], char *suits[], char *faces[], int deck[][FACES]) {    int suitIndex, faceIndex;

    suitIndex = rand() % 4;         // generates 1 random card     faceIndex = rand() % 13;    // generates 1 random card 



    while (deck[suitIndex][faceIndex] == 1) {  // checks if array slot is empty        suitIndex = rand() % 4;         // checks if the card has been given out         faceIndex = rand() % 13;        // checks if the card has been given out 



    }    deck[suitIndex][faceIndex] = 1; // checks if array slot is empty // fills the deck with 1's 

                                    // stores the power of the card



    printf("%s of %s \n", faces[faceIndex], suits[suitIndex]);   // number of the card in the array 



    fInHand[faceIndex]++;    sInHand[suitIndex]++;    printf("%d", fInHand[faceIndex]);    printf("%d", sInHand[suitIndex]);    }



void Question5(){    int i, j;    int swap;    int q;    int ni, nj;    

    int DeckC[4][13] = {        { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 },    { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 },    { 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39 },    { 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52 }    };    printf("Before\n");    for (i = 0; i < 4; i++)    {        for (j = 0; j < 13; j++)

        {            printf("%d ", DeckC[i][j]);        }        printf("\n");    }   printf("\n");    for (q = 0; q < 3; q++)        for (i = 0; i < 4; i++)            for (j = 0; j < 13; j++)            {                ni = rand() % 4;                nj = rand() % 13;                swap = DeckC[i][j];                DeckC[i][j] = DeckC[ni][nj];                DeckC[ni][nj] = swap;    }     printf("After\n");    for (i = 0; i < 4; i++)    {        for (j = 0; j < 13; j++)

        {            printf("%d ", DeckC[i][j]);        }        printf("\n");    }}













void dealHand(int sInHand[], int fInHand[], char *suits[], char *faces[], int deck[][FACES]) {    int i;    for (i = 0; i < 5; i++)

            dealCard(sInHand, fInHand, suits, faces, deck);    printf("\n");}





/* assign value to hand and print results */void printResult(int sInHand[], int fInHand[], int *pointValue)

{    int points;

    analyzeHand(sInHand, fInHand);

    if (straight && flush)     {        printf("Straight flush\n\n");        *pointValue = 9;        points = *pointValue;    }

    else if (four) {

        printf("Four of a kind\n\n");

        *pointValue = 8;

        points = *pointValue;

    }

    else if (three && pairs == 1) {

        printf("Full house\n\n");

        *pointValue = 7;

        points = *pointValue;

    }

    else if (flush) {        printf("Flush\n\n");        *pointValue = 6;

        points = *pointValue;





    }

    else if (straight) {

        printf("Straight\n\n");

        *pointValue = 5;

        points = *pointValue;





    }

    else if (three) {

        printf("Three of a kind\n\n");

        *pointValue = 4;

        points = *pointValue;





    }

    else if (pairs == 2) {

        printf("Two pairs\n\n");

        *pointValue = 3;

        points = *pointValue;





    }

    else if (pairs == 1) {

        printf("Pair\n\n");

        *pointValue = 2;

        points = *pointValue;





    }

    else if (pairs == 0) {        printf("High card\n\n");        *pointValue = 1;        points = *pointValue;

    }

}







int main() {    char *suits[4] = { "Hearts", "Diamonds", "Spades", "Clubs" }; /// 8    char *faces[13] = { "Two", "Three", "Four", "Five", "Six", "Seven",        "Eight", "Nine", "Ten", "Jack", "Queen", "King", "Ace" }; ///     int deck[4][13] = { { 0 } }; /// initialises with "AVAILABLE" 



    int sInHand[4] = { 0 };  // player one    int fInHand[13] = { 0 }; // player one    int SInHand2[4] = { 0 }; // player two    int FInHand2[13] = { 0 }; // player two    int numbersw;    int i;    int j;    int P1Points = 0;    int P2Points = 0;    srand(time(NULL));    printf("Press 1 for single player and 2 for multiplayer or 3 to display good shuffling");    scanf_s("%d", &numbersw);    if (numbersw == 1)    {        printf("Player 1 was dealt:\n\n");        dealHand(sInHand, fInHand, suits, faces, deck);        analyzeHand(sInHand, fInHand);        printResult(sInHand, fInHand, &P1Points);



        printf("Player 2 was dealt:\n\n");        dealHand(SInHand2, FInHand2, suits, faces, deck);        analyzeHand(SInHand2, FInHand2);        printResult(SInHand2, FInHand2, &P2Points);



        if (P1Points > P2Points) {            printf("Player One has won\n");        }        else if (P1Points < P2Points) {            printf("Player Two has won\n");        }        else            printf("A Tie\n");        system("pause");    }

    else if (numbersw == 2)    {        printf("Player 1 was dealt:\n\n");        dealHand(sInHand, fInHand, suits, faces, deck);        analyzeHand(sInHand, fInHand);        printResult(sInHand, fInHand, &P1Points);



        printf("Dealer was dealt:\n\n");        //dealHand(SInHand2, FInHand2, suits, faces, deck); // to hide the cards        analyzeHand(SInHand2, FInHand2);        printResult(SInHand2, FInHand2, &P2Points);

        if (P1Points > P2Points) {            printf("Player One has won\n");        }        else if (P1Points < P2Points) {            printf("Dealer has won\n");        }        else            printf("A Tie\n");        system("pause");    }    else if (numbersw == 3)    {        Question5();    }

    else if (numbersw != 1 || 2)    {        printf("Incorrect input\n");        printf("Press 1 for single player and 2 for multiplayer\n");        scanf_s("%d", &numbersw);    }    }