Advertisement
u53r

Trovare massimo, minimo numero e posizione in una sequenza

Jan 25th, 2018
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.82 KB | None | 0 0
  1. /*
  2.   Data una sequenza di numeri interi, si determini il massimo e il minimo e la loro posizione nella sequenza (Es. Nella sequenza 2 10 4 50 , il minimo è 2 , e la sua posizione è 1, mentre il massimo è 50 e la sua posizione è 4)
  3. */
  4.  
  5. #include <stdio.h>
  6.  
  7. int main() {
  8.   int x,mg,mn,posmn,posmg,i; // x = variabile di appoggio per l'input, mg = maggiore, mn = minore, posmn = posizione del minore, posmg = posizione del maggiore, i = variabile contatore per tenere traccia della posizione del numero corrente
  9.   printf("Inserisci un numero e premi INVIO. La sequenza termina dopo aver inserito lo 0\n");
  10.   scanf("%d", &x); // Prendo un primo valore in input
  11.   posmn = posmg = i = 1; // Il conteggio delle posizioni inizia da 1. Per adesso, posizione del maggiore e del minore coincidono
  12.   mg = mn = x; // Per adesso, maggiore e minore coincidono
  13.   while(x != 0){ // Controllo che x sia diverso da 0
  14.     if(x > mg){ // Se x è maggiore di mg
  15.       mg = x; // Il maggiore diventa x
  16.       posmg = i; // Aggiorno la posizione del maggiore
  17.     }else if(x < mn){ // Se x è minore di mn
  18.       mn = x; // Il minore diventa x
  19.       posmn = i; // Aggiorno la posizione del minore
  20.     }
  21.     i++; // Aggiorno il contatore della posizione
  22.     scanf("%d", &x); // Prendo un nuovo valore in input
  23.   }
  24.   printf("Maggiore: %d\n", mg); // Stampo il maggiore
  25.   printf("Minore: %d\n", mn); // Stampo il minore
  26.   printf("Posizione del maggiore nella sequenza: %d\n", posmg); // Stampo la posizione del maggiore
  27.   printf("Posizione del minore nella sequenza: %d\n", posmn); // Stampo la posizione del minore
  28.   /*
  29.   ATTENZIONE:
  30.   Nel caso in cui il primo (e, di conseguenza, unico) numero inserito sia lo 0, questo sarà considerato sia come maggiore che come minore,
  31.   mentre le variabili posmg e posmn avranno entrambe valore 1
  32.   */
  33.   return 0;
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement