Ir ao conteúdo
  • Cadastre-se

Subtrair valores da linha 2 pelos da coluna 3 e substituilos na linha 2. vejam


Posts recomendados

Bom galera, eu estou resolvendo um exercício onde ele pede para manipular a matriz, trocando a diagonal principal pelo secundaria, trocar linhas e etc. Isso tudo eu consegui fazer, mas esta faltando uma, que é subtrair valores da linha 2 pelos da coluna 3 e substitui-los na linha 2. Vejam meu codigo, o que estou fazendo de errado.

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

//18) Escrever um programa que lê uma matriz M 10x10 e a mostra na tela. E crie funções para:
//a) trocar a linha 2 com a linha 8 OK
//b) subtrair os valores da linha 2 pelos valores da coluna 3, e o resultado deve substituir os valores da linha 2.
//c) trocar a diagonal principal com a diagonal secundária OK


void troca1(int mat1[][3]);
void sub(int mat1[][3]);
void trocadiago(int mat1[][3]);
void somar(int mat1[][3]);


int main() {

	int i, j, mat1[3][3];


  for(i=0; i<3; i++) {
    for(j=0; j<3; j++)
      scanf("%d", &mat1[i][j]);
  }

 
  printf("Matriz 1:\n\n");
  for(i=0; i<3; i++) {
    for(j=0; j<3; j++)
      printf("%3.d\t", mat1[i][j]);
    printf("\n\n");
	}
	
	printf("Trocar linha 2 e 3: \n\n");
	troca1(mat1);
	
	printf("Subtrair valores da linha 2 pelos da coluna 3 e substituilos na linha 2:\n\n");
	sub(mat1);
	
	printf("Trocar diagonais:\n\n");
	trocadiago(mat1); 
	
	printf("Somar linha 1 com coluna 2 e substituir na coluna 1:\n\n");
	somar(mat1);
	
	system("pause");
	return 0;
}

void troca1(int mat1[][3]){
	printf("Linha Trocada\n");
	int i, j, aux;
	//troca linhas com uso de laço e auxiliar
	for(j=0;j<3;j++){//Percorrer todas as colunas
	aux = mat1[1][j];//variavel auxiliar recebe o valor da linha 2 na coluna atual, e a linha 2 nesta coluna fica vazia
	mat1[1][j] = mat1[2][j];// linha 2 recebe o valor da linha 8, que por sua vez fica vazia
	mat1[2][j] = aux; // linha 8 na coluna atual, recebe o valor da variavel auxiliar.
}
//apresenta linha trocada
for(i=0;i<3;i++){
for(j=0;j<3;j++)
printf("%d\t ",mat1[i][j]);
printf("\n\n");
}
}

void sub(int mat1[][3]){
	int i;
	int j;
	int soma=0;
	int mat3[3][3];
	int aux;
	
	for(i=0; i<3; i++){
    	for(j=0; j<3; j++)
    	mat3[i][j]=mat1[1][j]-mat1[i][2];
    }
    for(i=0;i<3;i++){
		for(j=0;j<3;j++)
		printf("%d\t ",mat3[i][j]);
		printf("\n\n");
	}
}

void trocadiago(int mat1[][3]){
	int i, j, aux;
	for(i=0;i<3;i++){
		aux=mat1[i][i];
		mat1[i][i]=mat1[i][3-1-i];
		mat1[i][3-1-i]=aux;
	}
	for(i=0;i<3;i++){
		for(j=0;j<3;j++){
			printf("%d\t ",mat1[i][j]);
			printf("\n\n");
		}
	}
}

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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!