Domanda:
devo scrivere un programma in c che?
?
2016-11-27 09:14:56 UTC
tramite un ciclo trovi i due numeri maggiori tra 10 valori inseriti. (Ogni valore può essere preso in input una volta sola). Io l'ho fatto ma funziona soltanto se i due numeri sono uno consecutivo all'altro. voi come fareste?
Una risposta:
exProf
2016-11-27 10:17:15 UTC
Io ti mostro l'algoritmo, tu ti codifichi il programma.



A1) Porre PRIMO = - infinito

A2) Porre SECONDO = - infinito # p.es. - 2^31



B) Per ogni valore V nel flusso in ingresso:

B1) se V > PRIMO

B1a) porre SECONDO = PRIMO

B1b) porre PRIMO = V

B1c) proseguire da B.

B2) se V > SECONDO

B2a) porre SECONDO = V

B2b) proseguire da B.



C) Al termine del flusso in ingresso restituire i valori PRIMO e SECONDO.



Ti ho fatto un po' di esempi al volo in IDLE, l'ambiente interattivo di Python

(Trovi documentazione e testi ai link

http://www.python.it

http://www.python.it/doc/Howtothink/Howtothink-html-it/index.htm ).

#

>>> def listaInteriCasuali(quanti, basso, alto):

import random

return [random.randint(basso, alto) for k in range(quanti)]



>>> a

[759, 139, 772, 630, 216, 920, 790, 499, 417, 491, 277]



>>> def dueMax(L):

PRIMO, SECONDO = 2*[- 2**31]

for V in L:

if V > PRIMO:

SECONDO = PRIMO

PRIMO = V

continue

if V > SECONDO:

SECONDO = V

return (PRIMO, SECONDO)



>>> dueMax(a)

(920, 790)



>>> a.sort()

>>> a

[139, 216, 277, 417, 491, 499, 630, 759, 772, 790, 920]

>>>

#





Lo sai che Y!A ti dà 3 punti se scegli una "Miglior risposta"? Se puoi, scegli questa!

v. http://www.yanswersblogit.com/b4/2010/01/08/evita-lo-spareggio-scegli-la-miglior-risposta/


Questo contenuto è stato originariamente pubblicato su Y! Answers, un sito di domande e risposte chiuso nel 2021.
Loading...