Logo Hardware.com.br
Ryu Hayabusa
Ryu Hayabusa Novo Membro Registrado
31 Mensagens 0 Curtidas

DUVIDA EM C...... Ajuda de emergencia........

#1 Por Ryu Hayabusa 06/04/2003 - 14:46
Ola, pessoal, estou estudando C na universidade e o professor passou um exercicio valendo de 0 a 10.

Fiz a primeira questao, funciona legal, sem da problema, mas o professor nao foi com a cara de como ele funciona e disse que tinha que re-fazer o programa.

A coisa é assim, ele quer um programa que vc coloque varios numeros, o programa nao precisa armazenar os numeros, apenas saber quem é o maior e o menor numero inserido, como tambem calcular a media total dos numeros, quando inserido 0 o programa finaliza e mostra o resultado dos numeros inseridos, media, maior e menor numero.

O problema esta na hora de calcular o maior e menor numero, estou fazendo o programa assim:



#include

int main (void)
{

int valor,i = 0, maior = 0, menor = 4000000, soma = 0, cache, true;
float media = 0.0;
printf ("\nIntroduza uma serie de inteiros positivos terminando a serie com zero");


while (true){

printf ("\nIntroduza o proximo valor: ");
scanf ("%d", &valor);

if (valor < 0){
printf ("Nao e valido o numero digitado:%d ", valor);
continue;
}

if (valor == 0){

printf ("Media dos valores introduzidos: %f \n", media);
printf ("Maior valor Introduzido: %d\n", maior);
printf ("Menor valor Introduzido: %d\n", menor);
getchar ();
break;
}

cache = valor;
soma += cache;
i = i++;
media = (float)soma/i;

if (valor > maior){
maior = valor;
}

if (valor < menor){
menor = valor;
}
}


return 0;}



O problema é que ele nao gostou nenhum pouco da maneira que eu fiz o essa parte do maior e menor. :cry:
Ele diz que nao é para iniciar maior =0, e menor=40000, o programa tem que "advinhar" isso no meio do caminho.

Se alguem tiver alguma ideia de como fazer isso por favor responda esse topico!!


Valeu!

Ryu Hayabusa
Andreia_Sp
Andreia_Sp Super Participante Registrado
654 Mensagens 1 Curtida
#2 Por Andreia_Sp
06/04/2003 - 18:46
Ryu Hayabusa
Ola, pessoal, estou estudando C na universidade e o professor passou um exercicio valendo de 0 a 10.

Fiz a primeir...



Ola Ryu,

eu nao entendi a parte de 'advinhar' os numeros, vc sabe se o seu prof. quer que vc coloque a quantidade de numeros a ser inserido, e isso será perguntado no programa. Ex. Vc quer digitar 10 numeros, ai vc dá esta saida e coloca o valor, entre estes 10 numeros ele irá verificar qual o mairo ou menos e fará os calculos.
é isso??? se nao for, poste novamente, talvez eu que nao tenha entendido.

Ps.: de que cidade voce é?
"Eu acreditava no sistema, até que formataram minha família."

"Se as coisas são feitas para serem usadas e as pessoas para serem amadas, por que amamos as coisas e usamos as pessoas ???"
Mestre Alien
Mestre Alien Membro Senior Registrado
325 Mensagens 0 Curtidas
#3 Por Mestre Alien
06/04/2003 - 22:50
Cara!!! Vc tem que colocar alguma estrutura para armazenar os dados. Um vetor ou uma lista encadeada. Se vc sabe a quantidade de valores a serem lidos, vc pode usar um vetor, senão, vc pode usar uma lista encadeada que aloca variáveis conforme necessário. Sem uma estrutura, não dá pra fazer isso que vc quer.
Gigabyte GA P965 DS3, Core 2 Duo E4300, 2GB Kingston, XFX GF 8600GT, LG 19" LCD WIDE, 160 GB SATA.

Vista Ultimate.
Windows XP Profissional
GNU/Linux Ubuntu

( :> Mestre Alien - Rodrigo C. Almeida
romulo
romulo General de Pijama Registrado
7.4K Mensagens 0 Curtidas
#4 Por romulo
07/04/2003 - 11:06
Ryu Hayabusa
Ola, pessoal, estou estudando C na universidade e o professor passou um exercicio valendo de 0 a 10.

Fiz a primeir...


Tenta assim:

#include

int main (void)
{

int valor,i = 0, maior, menor, soma = 0, cache;
float media = 0.0;
char primeiro=0;

printf ("\nIntroduza uma serie de inteiros positivos terminando a serie com zero");


while (true){

printf ("\nIntroduza o proximo valor: ");
scanf ("%d", &valor);

if (valor < 0){
printf ("Nao e valido o numero digitado:%d ", valor);
continue;
}

if (valor == 0){

printf ("Media dos valores introduzidos: %f \n", media);
printf ("Maior valor Introduzido: %d\n", maior);
printf ("Menor valor Introduzido: %d\n", menor);
getchar ();
break;
}

cache = valor;
soma += cache;
i = i++;
media = (float)soma/i;

if (primeiro==1)
{

if (valor > maior)
maior = valor;

if (valor < menor)
menor = valor;
}
else
{
maior = valor;
menor=valor;
primeiro=1;
}

}


return 0;}
Minha coleção de jogos (todos originais)
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal