Ir para conteúdo
Fórum Script Brasil
  • 0

Matriz que Faz somatório e Fatorial em C


saless

Pergunta

Fazer um programa onde se leiam 10 elementos de uma matriz A do tipo vetor. Construir 2 matrizes B e C de mesmo tipo, observando a seguinte lei de formação: todo elemento de B deverá ser o fatorial do elemento de A correspondente e todo elemento de C deverá ser o somatório do elemento de A correspondente. Montar uma rotina de pesquisa binária, para pesquisar os elementos armazenados na matriz A e a resposta deve mostrar o valor do fatorial correspondente armazenado na matriz B e o somatório correspondente armazenado na matriz C. A rotina de pesquisa deverá dar ao usuário a opção de continuar pesquisando ou não ao final de cada pesquisa.

Ex.: A[1] = 3 // B[1] = 6 // C[1]=6, A[2] = 4 // B[2]= 24 // C[3]=10...

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Baseado no que você falou, acho que o código abaixo pode te ajudar, ele cria uma matriz A e a preenche com valores aleatórios de 1 a 10 (podendo se repetir), e baseado nessa matriz constrói as matrizes B e C, após isso imprime as trés matrizes no console.

#include <stdio.h>
#include <time.h>

unsigned int factorial(unsigned int x)
{
    if(x == 1) return 1;

    return (x * factorial(x - 1));
}

unsigned int sum(unsigned int x)
{
    return ((x * x + x) / 2);
}

void buildMatrizA(unsigned int *a)
{
    int i;

    srand(time(NULL));

    for(i = 0; i < 10; i++)
    {
        // limita os valores da matriz A ao intervalo [1, 10]
        // apenas por questoes de simplicidade

        a[i] = (rand() % 10) + 1; 
    }
}

void buildMatrizB(const unsigned int *a, unsigned int *b)
{
    int i;

    for(i = 0; i < 10; i++)
    {
        b[i] = factorial(a[i]);
    }
}

void buildMatrizC(const unsigned int *a, unsigned int *c)
{
    int i;

    for(i = 0; i < 10; i++)
    {
        c[i] = sum(a[i]);
    }
}

int main()
{
    unsigned int matrizA[10];
    unsigned int matrizB[10];
    unsigned int matrizC[10];

    buildMatrizA(matrizA);
    buildMatrizB(matrizA, matrizB);
    buildMatrizC(matrizA, matrizC);

    printf("MatrizA = {%d, %d, %d, %d, %d, %d, %d, %d, %d, %d}\n",
        matrizA[0], matrizA[1], matrizA[2], matrizA[3], matrizA[4], matrizA[5],
        matrizA[6], matrizA[7], matrizA[8], matrizA[9]);

    printf("MatrizB = {%d, %d, %d, %d, %d, %d, %d, %d, %d, %d}\n",
        matrizB[0], matrizB[1], matrizB[2], matrizB[3], matrizB[4], matrizB[5],
        matrizB[6], matrizB[7], matrizB[8], matrizB[9]);

    printf("MatrizC = {%d, %d, %d, %d, %d, %d, %d, %d, %d, %d}\n",
        matrizC[0], matrizC[1], matrizC[2], matrizC[3], matrizC[4], matrizC[5],
        matrizC[6], matrizC[7], matrizC[8], matrizC[9]); 
    
    return 0;
}

Link para o comentário
Compartilhar em outros sites

  • 0

Perfeito, funcionou... agora ao invés de gera valores aleatórios gostaria que o algoritmo solicitasse a digitação dos valores ao usuário e ao invés de mostrar todas as matrizes fizesse uma pesquisa binária nos valores e digitados e mostrasse o fatorial e o somatório daquele valor depois do valor mostrado o programa perguntaria se o usuário deseja continuar ou não.. me desculpe é que estou iniciando em C e não sei fazer essas coisas ainda .

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...