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

Matriz


Isabella

Pergunta

Olá pessoa estou tentando trocar a linha 1 com a linha 3, porém não estou conseguindo irei colocar o código para que possam me ajudar

#include <stdio.h>
#include<stdlib.h>
main()
{
int m[3][3],lin,col,aux=0;
for(lin=0;lin<3;lin++)
for (col=0;col<3;col++)
{
printf("\n Digite o elemento M[%d][%d]=", lin+1, col+1);
scanf ("%d",&m[lin][col]);
}
printf ("\n\n");

lin == 0;
for (lin=1;lin<=3;lin++)
for(col=1;col<=3;col++)
{
if (lin == 0)
aux =m[1][col]; 
m[1][col]=m[3][col];
m[3][col]=aux;
}

for(lin=0; lin<3; lin++) {
for(col=0;col<3;col++)
printf("%d",m[lin][col]);
printf("\n");
}
system("pause");
}

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0
lin == 0;

for (lin=1;lin<=3;lin++)

if (lin == 0)

A primeira linha não faz sentido. Você usou o operador de igualdade, em vez do de atribuição

Você fez um loop com lin começando em 1, logo a comparação da terceira linha nunca retornará true

A matriz m vai de 0 a 2. Não existe o índice 3.

Para trocar as linhas, vocÊ tem que criar um novo vetor. Esse "aux" não pode ser um inteiro, tem que ser um vetor de trÊs posições de inteiros. Ao encontrar a primria linha, atribua aos índices de aux os índices de m[0]. Atribua a m[0] os valores de m[2] e a m[2] os valores de aux.

É como o velho programa troca(), mas em vez de trocar valores entre inteiros simples, faz troca entre vetores.

OBS: não precisa de loop para fazer esse programa, uma vez que você sabe exatamente em quais linhas mexer.

Link para o comentário
Compartilhar em outros sites

  • 0

Agora tntei esse, so aparece os valores, nema matriz quer aparecer

#include <stdio.h>
#include<stdlib.h>
main()
{
int m[3][3],lin,col,aux[3][3],x,y,linha=0;
for(lin=0;lin<3;lin++)
for (col=0;col<3;col++)
{
printf("\n Digite o elemento M[%d][%d]=", lin, col);
scanf ("%d",&m[lin][col]);
}
printf ("\n\n");

for (lin=0;lin<3;lin++)
for(col=0;col<3;col++)
{
if (linha = 0)
aux[x][y] =m[0][col]; 
m[0][col]=m[2][col];
m[2][col]=aux[x][y];
}

for(lin=0; lin<3; lin++) {
for(col=0;col<3;col++)
printf("%2d",aux[x][y]);
printf("\n");
}
system("pause");
}

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

  • 0

#include <stdio.h>
#include<stdlib.h>
int main()
{
int m[3][3],lin,col,aux[3];

for(lin=0;lin<3;lin++)
for (col=0;col<3;col++)
{
printf("\n Digite o elemento M[%d][%d]=", lin, col);
scanf ("%d",&m[lin][col]);
}
printf ("\n\n");



aux[0] = m[0][0];
aux[1] = m[0][1];
aux[2] = m[0][2];
m[0][0]=m[2][0];
m[0][1]=m[2][1];
m[0][2]=m[2][2];
m[2][0]=aux[0];
m[2][1]=aux[1];
m[2][2]=aux[2];


for(lin=0; lin<3; lin++) {
for(col=0;col<3;col++)
printf("%2d",m[lin][col]);
printf("\n");
}

return 0;
}

Não precisa de loop. ;)

Em C, não há como atribuir uma matriz a outra; é necessário copiar elemento por elemento

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

  • 0

isabella, o problema é q o indice vai do 0 ao 2. olha aqui nesse for:

for(col=1;col<=3;col++)

você ta pegando de 1 a 3. mas não é isso, a primera coluna na verdade é a 0 e a tercera é a 2.

nos otros fors você fez certo.

e você não precisa fazer um for para as linhas, porque você já sabe q linha quer trocar não é?? é so fazer o for da coluna, a logica pra trocar tava certa no primero post, aux não precisa ser uma matriz.

Link para o comentário
Compartilhar em outros sites

  • 0
Em C, não há como atribuir uma matriz a outra; é necessário copiar elemento por elemento
Beraldo, atribuir até que não dá, mas e quanto a copiar?

O uso da função memcpy, deveria ter esta finalidade. (considerando duas matriz de igual definição)

Abraços

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,3k
×
×
  • Criar Novo...