Untitled
unknown
plain_text
2 years ago
1.8 kB
12
Indexable
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
#include <wchar.h>
wchar_t* cartaMaior(wchar_t cartaString[][56], wchar_t cartaHex[][56], int numcartas)
{
wchar_t ultCharMaior = cartaHex[0][4];//ultimo char do primeiro hexadecimal da array
wchar_t* cartaM = cartaString[0];//carta maior
wchar_t penulCharMaior = cartaHex[0][3];//penultimo char do primeiro hexadecimal da array
for (int i = 0; i < numcartas; i++)
{
//ver qual a maior carta utilizando o ultimo char do hexadecimal
//se os ultimos chars forem iguais, ou seja, se forem cartas com o mesmo número, então passo a usar o penultimo char para ver o naipe
if (cartaHex[i][4] > ultCharMaior || (cartaHex[i][4] == ultCharMaior && cartaHex[i][3] > penulCharMaior))
{
//depois vou atualizando as variaveis com os novos valores
ultCharMaior = cartaHex[i][4];
penulCharMaior = cartaHex[i][3];
cartaM = cartaString[i];
}
}
return cartaM;
}
int main() {
setlocale(LC_CTYPE, "C.UTF-8");
wchar_t cartaString[56][56];//Array das cartas em si
wchar_t cartaHex[56][56];//Array dos hexadecimais das cartas
int numcartas = 0;//numero de cartas
wchar_t linha;
while ((linha = getwchar()) != L'\n')//Quando o user der Enter devolve o resultado
{
cartaString[numcartas][0] = linha;//Guarda a carta do input dentro da cartaString
swprintf(cartaHex[numcartas], 56, L"%04x", linha);//Guarda o hexadecimal da carta do input dentro da cartaHex
numcartas++;//Contar o número de cartas
}
wchar_t* cartaM = cartaMaior(cartaString, cartaHex, numcartas);
wprintf(L"\nA carta mais alta é: %ls ", cartaM);
return 0;
}Editor is loading...
Leave a Comment