Ir ao conteúdo

Posts recomendados

Postado

desenvolver uma aplicaçao em c que possibilite determinar a cardinalidade n(A1UA2UA3+...UAn) para qualquer amostra.Faça o teste para calcular a cardinalidade, ou seja, n(AUB) = n(A)+n(B) - n(A^B)

#include <stdio.h>
#include <stdbool.h>

#define MAX 100

int main() {
    int n, k[MAX];
    bool exists[MAX] = { false };

    // Leitura da amostra
    printf("Digite o tamanho da amostra: ");
    scanf("%d", &n);
    printf("Digite os elementos da amostra:\n");
    for (int i = 0; i < n; i++) {
        scanf("%d", &k[i]);
    }

    // Leitura dos conjuntos A1, A2, ..., An
    printf("Digite o numero de conjuntos: ");
    int m;
    scanf("%d", &m);
    for (int i = 1; i <= m; i++) {
        printf("Digite o tamanho do conjunto A%d: ", i);
        int size, elem;
        scanf("%d", &size);
        printf("Digite os elementos do conjunto A%d:\n", i);
        for (int j = 0; j < size; j++) {
            scanf("%d", &elem);
            // Marca como existente se o elemento aparece em algum conjunto
            for (int p = 0; p < n; p++) {
                if (k[p] == elem) {
                    exists[p] = true;
                }
            }
        }
    }

    // Conta quantos elementos existem na amostra
    int count = 0;
    for (int i = 0; i < n; i++) {
        if (exists[i]) {
            count++;
        }
    }

    // Imprime a cardinalidade
    printf("Cardinalidade: %d\n", count);
system("pause");
    return 0;
}

não sei como fazer para calcular a cardinalidade dos conjuntos

  • Curtir 1
Postado

@lucaslima123 Só precisa de um número, o total de valores únicos. E tem um limite: MAX, 100 no exemplo. 

 

Então só precisa ir testando os conjuntos e armazenando os números novos. O total ao final será a tal cardinalidade.

 

Seu programa não está bom ainda. 

 

  • bool nada acrescenta em C nem ao seu programa: basta um total e sem surpresas ele começa com zero e pode ir até 100 ou o vetor vai estourar.
  • teste o programa com constantes. É impensável ficar inventando valores a cada testes. Use constantes ou arquivos. É muito mais fácil.
  • teste o retorno de scanf. Sempre. É ingenuo não testar.
  • use funções. É muito mais simples.
  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!