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

Exercício em C


Canin

Pergunta

Eaew galera beleza ? eu ando tentando fazer esse exercício mais até agora não di conta de fazer

1 Faça um programa que leia uma matriz 5X5 e gerar outra em que cada elemento é o cubo do elemento respectivo na matriz original. Imprima depois o elemento do meio desta nova matriz.

2 Faça um algoritmo para somar duas matrizes de ordem 4

Me ajudem por favor com a desenvolver o código.

Com dicas, tutos já está valendo ^^ obg

Editado por Canin
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
Nos mostre alguma tentativa pelo menos, :D. Para nos temos certeza que você tentou.

só que acho que não ta como pede, tem como ver se ta certo? ou ta faltando algo

#include <math.h>

#include <stdio.h>

#include <conio.h>

// Programa principal

main()

{

int i,j,k;

float soma=0.0;

float A[4][4],B[4][4],R[4][4];

// Leitura das matrizes (2 matrizes)

printf(">>programa para leitura de matrizes<<\n\n");

for (k=0;k<2;k++)

{

if (k==0)

{

puts("Digite a matriz A:");

//scanf("%d,\\n&i,j");

}

else

{

puts("Digite a matriz B:");

//scanf("%d,\\n&i");

}

for (i=0;i<3;i++)

{

//for(j=0;j<3;j++)

//{

if(k==0)

{

printf("entre com os elementos da linha %d ",i+1);

scanf("%f %f %f",&A[0],&A[1],&A[2]);

}

else

{

printf("entre com os elementos da linha %d",i+1);

scanf("%f %f %f",&B[0],&B[1],&B[2]);

}

//}

}

}

Link para o comentário
Compartilhar em outros sites

  • 0

infelizmente so posso te ajudar ate aqui sou amador em C,mais como dizem qualuer ajuda e valida

#include <stdio.h>

#include <stlib.h>

int main (){

// leitura da matriz.//

int matriz [3][3];

int i,j;

int indiceLinha;

int indiceColuna;

int maiorValor;

for (i=0;i< 3; i++){

for (j=0; j<3; j++){

matriz[j] = 15 = (i*5);

}

}

for (i=0;i<3; i++){

for(j=0;j<3; j++){

print ("%4d",matriz[j]);

}

printf("\n");

}

printf ("\n");

maiorValor=matriz[0][0];

for (i=0;i< 3; i++){

for (j=0; j<3; j++){

if (matriz[j]>maiorValor){

maiorValor=matriz[j];

indiceLinha=i;

indiceColuna=j;

}

}

}

printf ("Maior valor:%d\nEncontra-se na posicao [%d][%d]\n",maiorValor,indiceLinha,indiceColuna);

system ("pause");

return 0;

}

Link para o comentário
Compartilhar em outros sites

  • 0

A sua rotina de leitura está confusa. Não entendi exatamente o que você pretende fazer no código.

Baseado no seu código, modifiquei a rotina de leitura das matrizes e criei uma função que mostra elas na tela.

#include <math.h>
#include <stdio.h>
#include <conio.h>

void mostraMatriz(float matriz[4][4])
{
    int i = 0;
    int j = 0;

    printf("Listando Matriz:\n");
    for (; i < 4; i++)
    {
        for (j = 0; j < 4; j++)
            printf("%f ", matriz[i][j]);

        printf("\n\n");
    }
}

/* Programa principal */
int main(void)
{
    int i = 0;
    int j = 0;
    float A[4][4];
    float B[4][4];

    /* Leitura das matrizes (2 matrizes) */
    printf(">>programa para leitura de matrizes<<\n\n");

    /* Leitura da matriz A */
    for ( i = 0; i < 4; i++ )
    {
        for ( j = 0; j < 4; j++ )
        {
            printf("Digite a matriz A. Elemento %d da linha %d: ", j+1, i+1);
            scanf("%f", &A[i][j]);
            printf("\n");
        }
    }

    /* Leitura da matriz B */
    for ( i = 0; i < 4; i++ )
    {
        for ( j = 0; j < 4; j++ )
        {
            printf("Digite a matriz B. Elemento %d da linha %d: ", j+1, i+1);
            scanf("%f", &B[i][j]);
            printf("\n");
        }
    }

    mostraMatriz(A);
    mostraMatriz(B);

    return 0;
}

A partir daí, basta fazer o tratamento que você deseja.

Espero que ajude.

Link para o comentário
Compartilhar em outros sites

  • 0

Você também pode usar de ponteiros.

No caso da soma de arrays 2D, com uma função ponteiro de poiteiro que recebe esses dois arrays.

int **soma_matriz(int**, int**);
Na função soma_matriz faço a alocação da matriz 2D que receberá a soma das duas matrizes (2D). Segue o programa completo, com uso dessa função e que apresenta o cubo dos valores da matriz. Veja que eu já defini o tamanho da matriz em 2, mas quem quiser testar pode alterar e também substituir as atribuições que eu já faço para matriz no inicio do programa por scanf, etc.
#include <stdio.h>
#include <stdlib.h>

#define MAX 2
#define cubo(x)((x)*(x)*(x))

void matriz_cubo(int**);
void imprime(int**);
int **soma_matriz(int**, int**);

int main(void){
    int **matriz, **m_soma, i;

    matriz = (int**)malloc(MAX * sizeof(int*));

    for(i = 0; i < MAX; ++i)
        matriz[i] = (int*)malloc(MAX * sizeof(int));

    matriz[0][0] = 2;
    matriz[1][0] = 3;
    matriz[0][1] = 4;
    matriz[1][1] = 5;

    printf("\nMatriz original:\n");
    imprime(matriz);
    matriz_cubo(matriz);
    printf("\nMatriz Cubo:\n");
    imprime(matriz);
    m_soma = soma_matriz(matriz, matriz);
    printf("\nMatriz Soma:\n");
    imprime(m_soma);

    for(i = 0; i < MAX; ++i){
        free(matriz[i]);
        free(m_soma[i]);
    }
    free(matriz);
    free(m_soma);
}

int **soma_matriz(int **m_a, int **m_b){
    int i, n = 0, **m_s;
    
    m_s = (int**)malloc(MAX * sizeof(int*));
    
    for(i= 0; i < MAX; ++i){
        m_s[i] = (int*)malloc(MAX * sizeof(int));
        
        for(n = 0; n < MAX; ++n)
            m_s[i][n] = m_a[i][n] + m_b[i][n];    

    }   
    return m_s;
}

void imprime(int **m){
    register int i;
    for(i = 0; i < MAX; ++i)
        printf("%d | %d\n", m[i][0], m[i][1]);
}

void matriz_cubo(int **m){
    register int i, n;
    for(i = 0; i < MAX; ++i)
        for(n = 0; n < MAX; ++n)
            m[n][i] = cubo(m[n][i]);
}

Editado por vega
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,3k
    • Posts
      652,4k
×
×
  • Criar Novo...