Dei uma lida e uma pensada, mas tive umas duvidas no teu codigo(não testei ainda...), só pra mim me ambientar e entender melhor, o que seriam as variáveis ai e ac(sei que tem a ver com o indice das cartas e ao naipe, mas to meio perdido)
neste trecho abaixo não se poder tem problema de divisão por zero, na primeira passada, quando o i é zero? já aproveitando, não entendi bem como aqui ele ira atribuir 1 as priemiras quatro cartas, 2 para as proximas 4 cartas...Se puder me dar uma explicada do funcionamento do código te agradeço. A parte do switch achei interessante, entendi o funcionamento, mas nunca tinha usado ele assim com um mod ali...boa lógica!
for (i = 0; i < 52; i++) { //inicialização
num[i] = i / 4 +1; Se puder dar uma explicada na parte de embaralhar tb, pois ta meio confuso pra mim, to sendo chato assim pois terei de apresentar este trabalho e será cobrado o código, se eu não souber o que o codigo faz corro risco de redução da nota ou se eu me atrapalhar para explicar ao ponto de acharem que não foi eu quem fez anularem o trabalho :( []'s Jeferson Neves