Ir para o conteúdo
thinkabout

Programa que determine o maior valor negativo de uma sequência de 500 valores inteiros lidos a partir do teclado. (guardar o último repetido)

Mensagens Recomendadas

thinkabout

Boas,

Não consigo resolver o problema, o código está a funcionar mas guarda sempre a posição do maior negativo, e não do maior negativo repetido.

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
/*
Desenvolva um programa que determine o maior valor negativo de uma sequência
de 500 valores inteiros lidos a partir do teclado.
O programa deve também informar a posição em que o maior valor negativo ocorreu na
sequência lida.
Se esse valor existir mais do que uma vez na sequência de valores inteiros lidos,
deve assinalar a posição da última ocorrência.
Exemplo de execução do programa:
Diga um número inteiro:6
Diga um número inteiro:-12
Diga um número inteiro:10
Diga um número inteiro:0
Diga um número inteiro:-3
Diga um número inteiro:-18
Diga um número inteiro:-8
Diga um número inteiro:14
Diga um número inteiro:-3
...
Leitura dos restantes 490 valores inteiros da sequência
...
Diga um número inteiro:-24
O maior valor negativo lido é o -3 e surgiu na posição 9
*/

int main()
{
int nvezes=0,numero,mnegativo=0,posicao=0,acontecimento;

do
{
printf("Diga um número inteiro:");
scanf("%d" , &numero);

posicao++;
if (numero < mnegativo)
{
mnegativo = numero;
acontecimento = posicao;
}
nvezes++;
} while (nvezes < 5); // Devia ser 500 mas para testes meti 5
printf("O maior valor negativo foi o %d e apareceu posicao %d \n" , mnegativo, acontecimento);
}

Editado por thinkabout

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
thinkabout

if (numero <= mnegativo) // <-------

Continuo com o mesmo problema, até já tinha corrigido essa linha.

Se meter

-3

-3

4

4

-44

Ele diz que o maior é o -44 quando devia dizer que o maior era o -3 e surgiu na posição 2.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

ah ok .. é que a nossa interpretação de "maior negativo" é inversa ... é perriçe ...

então a verificação é

- se é negativo

- se tem um valor numérico maior do que o valor já guardado

nota : terás de ter em conta que quando inicializas o processo ainda não descobriste nenhum.

terás de arranjar uma forma de

- ou sinalizar que ainda não leste nenhum valor

- atribuir um valor suficientemente pequeno para que nenhum elemento da lista seja mais pequeno que esse


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmg

Hint: no mínimo dos mínimos tens que guardar os números negativos que vão aparecendo para poderes saber se é repetido ou não.


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.