mi serve una mano, sto studiando il linguaggio c, e devo fare questo esercizio, sono qui dalle 16:30 ma non riesco a trovarne la soluzione, qualcuno potrebbe aiutarmi? Dice questo: i) Usando un approccio simile a quello dell’Esercizio 3.23, trovate i due valori più grandi tra 10 numeri. [Nota: potete inserire ogni numero solo una volta.]

16/03/2022 alle 17:50 16/03/2022 alle 17:50
18 commenti

Non so l'es di prima, ma ti direi: crea un array con i 10 valori, poi gli fai confrontare ogni numero con gli altri

E ti fai riportare il valore. Sarebbe simile all'algoritmo di ordinamento selezione max dove te li mette in ordine dal valore più grande al più piccolo confrontandoli, ma in questo caso ti fai riportare solo i primi 2 più grandi

Si ci avevo pensato anche io all’array, però sto facendo questi esercizi ancor prima che nel libro spiega l’array, perché sono tornato indietro e sto facendo vecchi esercizi, e a questo punto del libro ha spiegato solo while, if.

@op fai la stessa cosa ma senza array allora, gli dai solo 10 valori e via

(Trovare il numero più grande) Il processo di elaborazione che consiste nel trovare il nume- ro più grande (cioè il massimo di un insieme di numeri) si usa frequentemente nelle applica- zioni informatiche.

@op non credo che usare anche il while sia buono. Puoi cavartela solo con un if secondo me

Ad esempio, un programma che determina il vincitore di una gara di vendite riceve in ingresso il numero di unità vendute per ogni persona addetta alle vendite.

La persona che vende più unità vince la gara. Scrivete un programma in pseudocodice e poi un programma in C che legga una serie di 10 numeri non-negativi e determini e stampi il maggiore dei numeri. Suggerimento: il vostro programma deve utilizzare tre variabili, come segue:

counter: number: largest: un contatore per contare fino a 10 (cioè per tenere il conto di quanti numeri siano stati inseriti e per determinare quando tutti e dieci i numeri sono stati elaborati) il numero corrente inserito nel programma il numero maggiore trovato fino a quel punto

Qui ti ho incollato l’altro esercizio. Questo sono riuscito a farlo, il problema invece di quello che ho scritto nel segreto è proprio riuscire a capire come prendere dai 10 numeri i due più grandi, usando while e if praticamente

@HerlockSholmes boh provo e in caso ti faccio sapere se sono riuscito

@HerlockSholmes okkkk, non finirei mai di ringraziarti?

@op hai provato? Nel dubbio ti direi: usi due variabili max e max2 Inserisci i 10 valori (anche tramite scanf/printf) Gli fai fare un confronto per ogni elemento (sarebbe più veloce se usassi un for con array) tipo if a maggiore max/if b maggiore max2 allora i valori max e max2 verranno sostituiti dai valori a e b. Else continua finché non finisce

@op ti porto un esempio con 1 solo valore max, usando un ciclo for insieme al while ed all'if: #include int main() { int n, i, num, max; do { printf("Inserire numeri: "); scanf("%d", &n); }while (n minore uguale 0);

@op for(i=0;i minore n;i++) { printf("Numero %d:", i+1); scanf("%d", &num); if(i==0) max=num; if(num maggiore max) max=num;} printf("Il valore massimo e': %d\n", max); }