Untitled
unknown
plain_text
10 days ago
7.5 kB
3
Indexable
typedef struct { char estado; char codigoDaCidade; char nomeDaCidade; int populacao; float area; float PIB; int pontosTuristicos; } logicaSuperTrunfo; logicaSuperTrunfo carta; logicaSuperTrunfo ListaDeCartas[32]; unsigned long int perCapita(float pib, int populacao) { if (populacao <= 0) { printf("A popolução dever ser maior do que zero!!"); return 0; } return (unsigned long int)(pib / populacao); } // Função que calcula a densidade populacional float densidadePopulacional(int populacao, float area) { if (area <= 0) { printf("A área deve ser maior do que zero!!\n"); return 0; } return (float)populacao / area; } // Função que calcula o super poder da cada carta float superPoder(int populacao, float area, float pib, int pontosTuristicos) { float perCapitaValue = (float)perCapita(pib, populacao); // Converte explicitamente para evitar problemas no resultado float resultado = populacao + area + pib + perCapitaValue + (1 / densidadePopulacional(populacao, area)) + pontosTuristicos; return resultado; } // Função para requisição de dados para as cartas int carta(char *estado, char *codigo, char *nome, int *populacao, float *area, float *pib, int *pontosTuristicos) { printf("Digite o Estado entre A e H: "); scanf(" %c", estado); *estado = toupper(*estado); printf("Digite o código da cidade entre 1 e 4: "); scanf("%2s", codigo); printf("Digite o nome da Cidade: "); scanf(" %[^\n]", nome); printf("Digite a população da cidade: "); scanf("%d", populacao); printf("Digite a Área da cidade: "); scanf("%f", area); printf("Digite o PIB da cidade: "); scanf("%f", &(*pib)); *pib *= 1000000000; printf("Digite a quantidade de pontos turísticos da cidade: "); scanf("%d", pontosTuristicos); return 0; } // Função que retorna a carta com todos os valores que foram requeridos formatada como pedido int cartaPronta(char estado, char *codigo, char *nome, int populacao, float area, float pib, int pontosTuristicos) { printf("\nEstado: %c", estado); printf("\nCódigo da Carta: %c%02d", estado, atoi(codigo)); printf("\nNome da Cidade: %s", nome); printf("\nPopulação: %d", populacao); printf("\nÁrea: %.2f km²", area); printf("\nDensidade Populacional: %.2f pessoas/km²", densidadePopulacional(populacao, area)); printf("\nPIB: %.2f bilhões de reais", pib / 1000000000); printf("\nPIB per Capita: %lu reais", perCapita(pib, populacao)); printf("\nNúmero de Pontos Turísticos: %d\n", pontosTuristicos); printf("\nSeu SuperPoder é de: %.2f\n", superPoder(populacao, area, pib, pontosTuristicos)); return 0; } int main() { // Definição das variáveis para armazenar as propriedades das cidades // Você pode utilizar o código do primeiro desafio char estado, estado2; char codigoDaCidade[3], codigoDaCidade2[3]; char nomeDaCidade[50], nomeDaCidade2[50]; int populacao, quantidadePontosTuristicos, populacao2, quantidadePontosTuristicos2; float area, PIB, area2, PIB2; int opcao; int opcaoMenu; int pontuacao1 = 0, pontuacao2 = 0; // Cadastro das Cartas: // Implemente a lógica para solicitar ao usuário que insira os dados das cidades // utilizando a função scanf para capturar as entradas. // utilize o código do primeiro desafio // printf("Crie a carta do primeiro jogador:\n"); // CRIAÇÃO DA CARTA DO PRIMEIRO JOGADOR// // RETORNO DA PRIMEIRA CARTA// // printf("\nAgora crie a carta do segundo jogador\n"); // // CRIAÇÃO DA CARTA DO SEGUNDO JOGADOR// // // RETORNO DA CARTA DO SEGUNDO JOGADOR // // Exemplo: // printf("Digite o código da cidade: "); // scanf("%s", codigo); // (Repita para cada propriedade) // Comparação de Cartas: // Desenvolva a lógica de comparação entre duas cartas. // Utilize estruturas de decisão como if, if-else para comparar atributos como população, área, PIB, etc. do { printf("\nBem-Vindo ao Jogo Super-Trunfo!\n\n"); printf("1. Cadastrar carta\n"); printf("2. Mostrar cartas\n"); printf("3. Compare os atributos das cartas\n"); printf("4. Sobre o Jogo\n"); printf("5. Sair do Jogo\n"); scanf("%d", &opcaoMenu); switch (opcaoMenu) { case 1: printf("Digite os dados da sua carta: \n\n"); carta(&estado, codigoDaCidade, nomeDaCidade, &populacao, &area, &PIB, &quantidadePontosTuristicos); break; printf("Digite os dados da segunda carta: \n\n"); carta(&estado2, codigoDaCidade2, nomeDaCidade2, &populacao2, &area2, &PIB2, &quantidadePontosTuristicos2); break; case 2: printf("\n--------Essa é a carta do primeiro jogador--------"); cartaPronta(estado, codigoDaCidade, nomeDaCidade, populacao, area, PIB, quantidadePontosTuristicos); printf("\n--------Essa é a carta do segundo jogador--------"); cartaPronta(estado2, codigoDaCidade2, nomeDaCidade2, populacao2, area2, PIB2, quantidadePontosTuristicos2); break; case 3: // Escolha de atributos // do { // escolha dos atributos printf("Escolha com qual dos atributos você quer competir:\n"); printf("1. População\n"); printf("2. Área\n"); printf("3. PIB\n"); printf("4. Per Capita\n"); printf("5. Densidade Populacional\n"); printf("6. Pontos Turísticos\n"); printf("7. Super Poder\n"); printf("8. Voltar para o menu principal\n"); scanf("%d", &opcao); switch (opcao) { case 1: printf("%d população1 - %d população 2", populacao, populacao2); if (populacao > populacao2) { printf("\nCarta 1 venceu na propriedade: população\n\n"); pontuacao1 += 1; } else if (populacao < populacao2) { printf("\nCarta 2 venceu na propriedade: população\n\n"); pontuacao2 += 1; } else { printf("Empate no atributo população!!!"); } break; case 2: printf("%.2f area 1 - %.2f area 2", area, area2); if (area > area2) { printf("\nCarta 1 venceu na propriedade: área\n\n"); pontuacao1 += 1; } else if (area < area2) { printf("\nCarta 2 venceu na propriedade: área\n\n"); pontuacao2 += 1; } else { printf("Empate no atributo área!!!\n\n"); } break; break; default: break; } } while (opcao != 8); break; } } while (opcaoMenu != 5); // menu principal finalização
Editor is loading...
Leave a Comment