Untitled

 avatar
unknown
plain_text
a year ago
1.8 kB
6
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