Duvida em Divisão com Array [RESOLVIDO]

1. Duvida em Divisão com Array [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 29/04/2012 - 02:39h

Boa noite Professor

Será que conseguem ver o que tem de errado nesse meu código ?

Estou tentando dividir toda uma linha pelo primeiro elemento


Aqui está o Código

//------------------------------------------------------------------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
main()
{
float a[3][4];
float b[2][3];
float w;
int n,y;
n=y=0;
printf ("Esse programa ira Dividir toda uma linha de uma matriz pelo seu primeiro elemento a matriz tem dimensao 3x3 (incluindo o conjunto solucao) Ou seja uma matriz ao total 4x3\n\n\n\n");
printf ("Insira os valores da sua matriz (primeiros as linhas e depois as colunas )\n");
printf ("Nao esqueca de adicionar o conjunto solucao \n");
// Entrando com os valores da Matrix
for (n=0;n<3;n++)
for (y=0;y<4;y++)
scanf("%f",&a[n][y]);
//matriz
printf ("Essa eh sua matriz\n");
for (n=0;n<3;n++)
{
printf("\n");
for (y=0;y<4;y++)
printf("%6.3f",a[n][y]);
}
printf("\n\n\n");
// Efetuando a Divisão das linhas 1 2 e 3
for (n=0;n<3;n++)
for (y=0;y<4;y++)
{
a[n][y]/=a[n][0];
}
// Mostrando os resultados
printf ("calculo parcial da sua matriz Etapa Divisao: \n");
for (n=0;n<3;n++)
{
printf("\n");
for (y=0;y<4;y++)
printf("%6.3f",a[n][y]);
}
printf("\n\n\n\n\n");

system("PAUSE");
}
--------------------------------------------------------------------------------------------------------------------------------------



Pelo o que parece o array a[0][0] mantem seu numero no primeiro loop já no segundo ele recebe o valor 1 (fiz um teste com printf )

Bom esse meu foi o código do meu teste.

// Efetuando a Divisão das linhas 1 2 e 3
for (n=0;n<3;n++)
for (y=0;y<4;y++)
{
printf("%f / %f \n",a[n][y],a[n][0]);
a[n][y]/=a[n][0];
}


Alguém sabe porque esse erro ?


  


2. MELHOR RESPOSTA

Perfil removido
removido

(usa Nenhuma)

Enviado em 29/04/2012 - 22:27h

Veja esta linha:

a[n][y]/=a[n][0]; 


Quando y=0 e qualquer que seja o valor de n, o lado direito e o esquerdo ficam com o mesmo valor. Logo representam o mesmo valor.

Qualquer número dividido por ele mesmo (exceto zero - é outra história) resulta em 1.

E como está sendo usada a auto-atribuição, ele joga esse valor 1 no lado esquerdo (LVALUE) da expressão, ou seja, em todas as linhas da primeira coluna (y=0).

Por isso sempre aparece 1 nessa coluna da matriz.

3. Re: Duvida em Divisão com Array [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 01/05/2012 - 00:36h

Certo entendi cara valeu pela ajuda mesmo, o negocio é fazer uma contagem regressiva






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts