Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
Guilherme Sixe

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

Recommended Posts

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");
		}
	}
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×