Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ripper

O que há de errado ?

Recommended Posts

Tenho que resolver o problema:

Elabore um programa em C que receba do usuário duas matrizes quadradas de números inteiros.

Crie funções para calcular: a soma das duas matrizes, o produto das duas matrizes, a transposta da

primeira matriz e o determinante da segunda matriz. As matrizes de entrada deverão ser passadas

por parâmetro para cada uma das funções.

 

Fiz isso:

#include<stdio.h>
#include<stdlib.h>

  int i;
  int j;
  int n;

  void soma(int a[i][j],int b[i][j]);
  void produto(int a[i][j],int b[i][j]);
  void transposta(int a[i][j]);
  void determinante(int a[i][j]);
    
 int main(){
   
    int m1[i][j];
    int m2[i][j];

    printf("Digite o numero de linhas das matrizes ");
    scanf("%d", &n);
                                                                                                      
    for(i=0;i<n;i++){
    for(j=0;j<n;j++){
    printf("Digite os elementos da primeira matriz ");
    scanf(" %d",&m1[i][j]);
    }
    }

    for(i=0;i<n;i++){
    for(j=0;j<n;j++){
    printf("Digite os elementos da segunda matriz ");
    scanf("%d",&m2[i][j]);
    }
    }
 
    for(i=0;i<n;i++){
    for(j=0;j<n;j++){
    printf(" %d", m1[i][j]);
    }
    printf("\n");
    }
    printf("\n");

    
    for(i=0;i<n;i++){
    for(j=0;j<n;j++){ 
    printf(" %d", m2[i][j]);   
    }
    printf("\n");
    }
    printf("\n");    

    soma(m1,m2);
    printf("\n");
    produto(m1,m2);
    printf("\n");
    transposta(m1);

    return 0;
}

 void soma(int a[i][j],int b[i][j])
    {
       int c[i][j];
       
       for(i=0;i<n;i++){
       for(j=0;j<n;j++)                   
       c[i][j]=0;
       }

       for(i=0;i<n;i++){
       for(j=0;j<n;j++)                  
       c[i][j]= (a[i][j])+(b[i][j]);
       }
       
       for(i=0;i<n;i++){
       for(j=0;j<n;j++){
       printf(" %d",c[i][j]);
       }
        printf("\n");
       }
    }
    
  void produto(int a[i][j],int b[i][j])
    {
       int d[i][j];

       for(i=0;i<n;i++){
       for(j=0;j<n;j++){
       d[i][j]=0;
       }
       }


       for(i=0;i<n;i++){
       for(j=0;j<n;j++){
       d[i][j]= d[i][j]+a[i][j]*b[j][i];
       }
       }
       
       for(i=0;i<n;i++){
       for(j=0;j<n;j++){
       printf(" %d",d[i][j]);
       }
        printf("\n");
       }
    }  
  
  void transposta(int a[i][j])
    {
       int e[i][j];

       
       for(i=0;i<n;i++){
       for(j=0;j<n;j++){ 
       e[j][i]=0;
       }
       }
       
       for(i=0;i<n;i++){
       for(j=0;j<n;j++){ 
       e[j][i]=a[i][j];   
       }
       }
       
       for(i=0;i<n;i++){
       for(j=0;j<n;j++){
       printf(" %d",e[i][j]);
       }
        printf("\n");
       }
    }

Mas quando compilo ( Usando linux ubuntu) e entro com alguns numeros aparece isso:

Digite o numero de linhas das matrizes 2

Digite os elementos da primeira matriz 1

Digite os elementos da primeira matriz 2

Digite os elementos da primeira matriz 3

Digite os elementos da primeira matriz 4

Digite os elementos da segunda matriz 5

Digite os elementos da segunda matriz 6

Digite os elementos da segunda matriz 7

Digite os elementos da segunda matriz 8

3 4

3 4

 

7 8

7 8

 

10 12

-1079419664 -1216704212

 

21 -22711360

0 0

 

3 0

4 0

 

Será que alguém pode me dar uma força. Agradeço desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Preste atenção no que você escreve:

 

#include<stdio.h>
#include<stdlib.h>

int i;
int j;
int n;

void soma(int a[i][j],int b[i][j]);
void produto(int a[i][j],int b[i][j]);
void transposta(int a[i][j]);
void determinante(int a[i][j]);

int main(){

int m1[i][j];
int m2[i][j];

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.