Exibir maior peso.

1. Exibir maior peso.

Fabricio
Hellsius

(usa Ubuntu)

Enviado em 27/03/2011 - 03:24h

Neste exercicio estou tentando fazer com que o programa mostre o maior peso dos pesos que foram cadastrados no programa. FIz da seguinte forma:
__________________________________________________
#include <stdio.h>
#include <math.h>

int main ()
{
// Variaveis
float peso, aux=1, altura;
int vezes;

// Entrada de Dados
while(vezes<=3) //seram cadastradas 3 pessoas
{
printf("\nInforme sua altura: \n");
scanf("%f", &altura);
printf("\nInforme seu peso: \n");
scanf("%f", &peso);

// Processamento

if(peso>aux)
{
printf("\nO maior peso eh: %.1f\n", peso);
}
else
{
printf("\nO maior peso eh: %.1f\n", aux);
} // f_else

peso=aux; //aux é igual ao ultimo peso informado
vezes++;
} // f_while

// Final do Codigo
getch();
return 0;

}
O programa não esta terminado, mas pelo menos esta parte não conseguir fazer, por que todo peso que informo ele printa como o maior peso. O que fiz de errado? Lembrando que sou novato em programação :).


  


2. Re: Exibir maior peso.

Joao
stack_of

(usa Slackware)

Enviado em 27/03/2011 - 10:47h

A variável `vezes` não tem nenhum valor atribuído.

int vezes=1;

Quanto à comparação de pesos, crie um vetor para armazenar os pesos e um algorítmo para comparar os valores e escolher o maior.


3. Re: Exibir maior peso.

Fabricio
Hellsius

(usa Ubuntu)

Enviado em 27/03/2011 - 16:28h

Estava lendo esse site:
http://www.juliobattisti.com.br/tutoriais/katiaduarte/cbasico004.asp

Mas ainda sim não sei direito como trabalhar com array, poderia me dar umas explicações???


4. Re: Exibir maior peso.

Joao
stack_of

(usa Slackware)

Enviado em 27/03/2011 - 19:32h

Apesar de não utilizar muito C, pois não tenho necessidade alguma pois uso Python, reescrevi seu código com um array multidimensional:

#include <stdio.h>

#define TAM 2
#define QUANT 3

int main(){

float arranjo[TAM][QUANT];

float peso, altura, peso_maior=0;
int vezes=1, i=0, j=0;

// Entrada de Dados
while(vezes<=3){
j=0;
printf("\nInforme sua altura: \n");
scanf("%f", &altura);
printf("\nInforme seu peso: \n");
scanf("%f", &peso);
arranjo[i][j] = peso;
arranjo[i][j+1] = altura;
i++;
vezes++;
}

for(j=0;j<QUANT;j++){


if ( peso_maior < arranjo[j][0]){

peso_maior = arranjo[j][0];
}


}

printf("Peso maior= :%f", peso_maior);
return 0;

}

Pode ser melhorado.


5. Re: Exibir maior peso.

Fabricio
Hellsius

(usa Ubuntu)

Enviado em 28/03/2011 - 00:14h

Opa, vlw.
Vou testa-lo, vou estuda-lo e ja posto as duvidas.


6. Re: Exibir maior peso.

Fabricio
Hellsius

(usa Ubuntu)

Enviado em 28/03/2011 - 00:32h

Vlw mesmo pela ajuda stack_of, o fonte rodou perfeitamente, mas meu principal objetivo que é aprender o que foi feito não vai ser cumprido, percebi que tenho muitas duvidas neste tipo de exercio ao trabalhar com array, prefiro antes tiras algumas duvidas do que postalas aqui devido a quantidade delas e a tal simplicidade das duvidas em questão.

Estudando um pouco mais essa parte volto a postar as duvidas com conhecimento suficiente para entender as respostas e conseguir entender melhor uma explicação.


7. Re: Exibir maior peso.

Sergio Teixeira - Linux User # 499126
Teixeira

(usa Linux Mint)

Enviado em 30/03/2011 - 09:37h

Hellsius, você está-se bloqueando.
Procure entender o que cada linha está fazendo (pelo menos nesse exemplo está fácil de entender).

Bloquear-se é assim: Quando terminei meu curso de Assembly eu tinha grande dificuldade com uns tais de "index registers", e me apavorava (literalmente) porque esse assunto não entrava na minha cabeça "nem com broca" e eu precisava aprender isso com urgência.
E como eu tinha direito a mais 16 horas de análise, pedi a presença do analista de suporte, que em menos de 10 minutos me explicou aquilo que eu mesmo me recusava a entender.
Só faltava cair a ficha...
Muitas vezes a coisa é MUITO simples, e nós mesmos é que complicamos.


8. Re: Exibir maior peso.

Joao
stack_of

(usa Slackware)

Enviado em 30/03/2011 - 13:29h

Basta dar uma lida em vetores ou arranjos. Entenda-os como uma matriz. Nesse caso usei um arranjo bidimensional para armazenar os pesos e alturas, que chamei arranjo:

| A(i,j), B(i,j) |
| C(i,j), D(i,j) |
| E(i,j), F(i,j) |

Seria muito tedioso criar uma variável para cada um desses elementos. Com o arranjo podemos obter os valores por meio de uma referência. Por exemplo a altura1 seria arranjo[1][1].

| peso(0,0), altura(0,1) |
| peso1(1,0), altura1(1,1) |
| peso2(2,0), altura2(2,1) |


9. Uma provavel solução

luiz neto
lbneto

(usa Ubuntu)

Enviado em 31/03/2011 - 19:51h

No caso do seu codigo o vetor irá ajudar para fazer o que vc pretende.

Pois como vc quer armazenar 3 valores para o peso para depois então comparar e dizer quem é o maior deles.

O array se encaixa perfeitamente nesse processo.

Também sou iniciante.


#include<stdio.h>


int main()
{
// Variaveis
float peso[3],Maior, altura;
int vezes,i;

// Entrada de Dados
for(vezes=0;vezes<3;vezes++) //seram cadastradas 3 pessoas
{
printf("\nInforme sua altura: \n");
scanf("%f", &altura);
printf("\nInforme seu peso: \n");
scanf("%f", &peso[vezes]);
} // f_while
// Processamento
Maior = peso[0]; // assume que o primeiro é o maior
for(i=0; i<3; i++) // percorre agora o vetor que preenchemos no começo
{
if (peso[i] > Maior)
Maior = peso[i]; // maior no fim tera o valor do maior peso entre os 3

}

printf("O maior elemento e %f\n",Maior);

// Final do Codigo
getch();
return 0;

}


Essa foi a minha maneira de fazer, mas cada um tem um jeito particular de fazer. E com o tempo isso so melhora. Então bons estudos.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts