Ir ao conteúdo
  • Cadastre-se

C Multiplicaçao de diagonais de uma matriz


Posts recomendados

exercício 03

Faça um programa que preencha duas matrizes 8x8 com números inteiros e depois multiplique a diagonal principal da primeira pela diagonal secundária da segunda. Depois mostre o resultado.

 

tenho que criar duas matrizes 8x8, mostrar as diagonais principal da primeira e diagonal secundaria da segunda e multiplicar as diagonais

 

falta somente a multiplicação

 

vejam meu códico


 

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <locale.h>
#define tam 2  // somente para teste ,depois mudar para 8 
main()
{
     setlocale(LC_ALL,"portuguese");
       int Matriz1 [tam][tam];
       int linha1,coluna1;
       int Matriz2 [tam][tam];
       int linha2,coluna2;
      printf("----------------------\n");
      printf("Matriz 01:\n");
      printf("----------------------\n");
       for (linha1=0; linha1<tam;linha1++){
            for (coluna1=0; coluna1<tam;coluna1++){
                  printf("Linha e Coluna da primeira matriz: [%d][%d] ",linha1,coluna1);
                 scanf("%d",&Matriz1[linha1][coluna1]);
              }
      }
      printf("----------------------\n");
      printf("Matriz 02:\n");
      printf("----------------------\n");
         for (linha2=0; linha2<tam;linha2++){
            for (coluna2=0; coluna2<tam;coluna2++){
                  printf("Linha e Coluna da segunda matriz: [%d][%d] ",linha2,coluna2);
                 scanf("%d",&Matriz2[linha2][coluna2]);
              }
      }

      printf("----------------------\n");
      printf("Matriz 01 Digitada:\n");
      printf("----------------------\n");
        for (linha1=0; linha1<tam;linha1++){
            for (coluna1=0; coluna1<tam;coluna1++){
                  printf("%5d ", Matriz1[linha1][coluna1]);
              }
              printf("\n\n");
      }
      printf("----------------------\n");
      printf("Matriz 02 Digitada:\n");
      printf("----------------------\n");
        for (linha2=0; linha2<tam;linha2++){
            for (coluna2=0; coluna2<tam;coluna2++){
                  printf("%5d ", Matriz2[linha2][coluna2]);
              }
              printf("\n\n");
      }
         printf("-----------------------------\n");
      printf("Diagonal principal da matriz 01:\n");
      printf("-----------------------------\n");
        for (linha1=0; linha1<tam;linha1++){
            for (coluna1=0; coluna1<tam;coluna1++){
                 if (coluna1 == linha1){
                       printf("%5d ", Matriz1[linha1][coluna1]);
                   }
         }
      }
      printf("\n\n");
      printf("-----------------------------\n");
      printf("Diagonal secundária da matriz 02:\n");
      printf("-----------------------------\n");
        for (linha2=0; linha2<tam;linha2++){
            for (coluna2=0; coluna2<tam;coluna2++){
                 if (coluna2 == (tam - 1 - linha2 )){
                       printf("%5d ", Matriz2[linha2][coluna2]);
                   }
         }
      }
      
      // ate aqui ok, mas não esta fazendo  multiplicação corretamente
      printf("\n\n");
      printf("-----------------------------\n");
      printf("Multiplicação das diagonais:\n");
      printf("-----------------------------\n");
            for (linha1=0; linha1<tam;linha1++){
            for (coluna1=0; coluna1<tam;coluna1++){
            if (coluna1 == linha1);
         }
         }
            for (linha2=0; linha2<tam;linha2++){
            for (coluna2=0; coluna2<tam;coluna2++){
            if (coluna2 == (tam - 1 - linha2 )){
            printf("%5d ", (Matriz1[linha1][coluna1])*(Matriz2[linha2][coluna2]));
                }
         }
      }
      printf("\n\n");
      getch();
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Alessandroequilibrio    para fazer a multiplicação seria melhor você armazenar os números da diagonal principal e secundaria em dois vetores e depois use os valores que estão nos vetores para multiplicar um pelo outro .  

    então seu código ficaria assim :

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <locale.h>
#define tam 4  /*// somente para teste ,depois mudar para 8*/
int main()
{
    setlocale(LC_ALL,"");
    int Matriz1 [tam][tam];
    int linha1,coluna1;
    int Matriz2 [tam][tam];
    int vetor1[tam];
    int vetor2[tam],i;
    int linha2,coluna2;
    printf("----------------------\n");
    printf("Matriz 01:\n");
    printf("----------------------\n");
    printf("Digite Os Numeros\n");
    for (linha1=0; linha1<tam;linha1++){
        for (coluna1=0; coluna1<tam;coluna1++){
            printf("Linha e Coluna da primeira matriz: [%d][%d] ",linha1,coluna1);
            scanf("%d",&Matriz1[linha1][coluna1]);
        }
    }
    printf("----------------------\n");
    printf("Matriz 02:\n");
    printf("----------------------\n");
    for (linha2=0; linha2<tam;linha2++){
        for (coluna2=0; coluna2<tam;coluna2++){
            printf("Linha e Coluna da segunda matriz: [%d][%d] ",linha2,coluna2);
            scanf("%d",&Matriz2[linha2][coluna2]);
        }
    }
    printf("----------------------\n");
    printf("Matriz 01 Digitada:\n");
    printf("----------------------\n");
    for (linha1=0; linha1<tam;linha1++){
        for (coluna1=0; coluna1<tam;coluna1++){
            printf("%5d ", Matriz1[linha1][coluna1]);
        }
        printf("\n\n");
    }
    printf("----------------------\n");
    printf("Matriz 02 Digitada:\n");
    printf("----------------------\n");
    for (linha2=0; linha2<tam;linha2++){
        for (coluna2=0; coluna2<tam;coluna2++){
            printf("%5d ", Matriz2[linha2][coluna2]);
        }
        printf("\n\n");
    }
    printf("-----------------------------\n");
    printf("Diagonal principal da matriz 01:\n");
    printf("-----------------------------\n");
    for (linha1=0; linha1<tam;linha1++){
        for (coluna1=0; coluna1<tam;coluna1++){
            if (coluna1 == linha1){
                printf("%5d ", Matriz1[linha1][coluna1]);
                vetor1[linha1]=Matriz1[linha1][coluna1];
            }
        }
    }
    printf("\n\n");
    printf("-----------------------------\n");
    printf("Diagonal secundária da matriz 02:\n");
    printf("-----------------------------\n");
    for (linha2=0; linha2<tam;linha2++){
        for (coluna2=0; coluna2<tam;coluna2++){
            if (coluna2 == (tam - 1 - linha2 )){
                printf("%5d ", Matriz2[linha2][coluna2]);
                vetor2[linha2]=Matriz2[linha2][coluna2];
            }
        }
    }
      /*// ate aqui ok, mas não esta fazendo  multiplicação corretamente*/
    printf("\n\n");
    printf("-----------------------------\n");
    printf("Multiplicação das diagonais:\n");
    printf("-----------------------------\n\n");
    for(i=0;i<tam;i++){
        printf("%d x %d => %d\n",vetor1[i],vetor2[i],vetor1[i]*vetor2[i]);
    }
    printf("\n\n");
    getch();
    return 0;
}

 

Link para o comentário
Compartilhar em outros sites

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...