thinkabout Posted December 23, 2012 Report Share Posted December 23, 2012 (edited) 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); } Edited December 23, 2012 by thinkabout Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 23, 2012 Report Share Posted December 23, 2012 if (numero <= mnegativo) // <------- IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
thinkabout Posted December 23, 2012 Author Report Share Posted December 23, 2012 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. Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 23, 2012 Report Share Posted December 23, 2012 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 Portugol Plus Link to comment Share on other sites More sharing options...
pmg Posted December 26, 2012 Report Share Posted December 26, 2012 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! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now