KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I just have a simple question about arrays in C: What is the best way to remove elements from an array and in the process make the array smaller. ie: the array is n size, then I take elements out of the array and then the array grows smaller by the amount that I removed it from. basically I'm treating the array like a deck of cards and once I take a card off the top of the deck it shouldn't be there anymore. EDIT: I'm going to drive myself crazy before the end of the day, thanks for all the help I'm trying the value swapping thing but it's not working right. #include <stdio.h> #include <string.h> #include <stdlib.h> enum faces { Ace = 0, Jack = 10, Queen, King }; char *facecheck(int d); int draw(int deck, int i); int main() { int deck[52], i, n; char suits[4][9] = { "Hearts", "Diamonds", "Clubs", "Spades" }; n = 0; for (i = 0; i < 52; i++) { deck[i] = n; n++; }; for (i = 0; i < 52; i++) { if (i % 13 == 0 || i % 13 == 10 || i % 13 == 11 || i % 13 == 12) printf("%s ", facecheck(i % 13)); else printf("%d ", i % 13 + 1); printf("of %s \n", suits[i / 13]); } draw(deck, i); return 0; } char *facecheck(int d) { static char *face[] = { "Ace", "Jack", "Queen", "King" }; if (d == Ace) return face[0]; else { if (d == Jack) return face[1]; else { if (d == Queen) return face[2]; else { if (d == King) return face[3]; } } } } int draw(int deck, int i) { int hand[5], j, temp[j]; for (i = 0; i < 52; i++) { j = i }; for (i =
Tags (comma-separated)
Save Edits
Cancel