[RISOLTO] Trovare il maggiore tra N numeri in C

C, C++, Java, ...

[RISOLTO] Trovare il maggiore tra N numeri in C

Messaggioda lcproductions » 15/12/2017, 22:01

Salve a tutti,
da un po' di tempo sto smadonnando con questo problema:

Dati in input N numeri interi, si determini il massimo e il minimo tra essi


Il programma deve essere scritto in C .
Ecco il codice che ho scritto fino ad ora:
Codice: Seleziona tutto
#include <stdio.h>
#include <stdlib.h>

int main() {
   int *a,max,min,n,i;
   printf("Quanti numeri vuoi inseririe? ");
   scanf("%d", &n);
   a = malloc(n * sizeof(int));
   for (i = 0; i<n; i++) {
     scanf("%d", &a[i]);
   }
   
   // Determino il maggiore dei numeri
   if(a[n-1] > a[n-2]){
     max = a[n-1];
   }else{
     max = a[n-2];
   }
   for (i = n - 3; i >= 0; i--) {
     if(max < a[i]){
       max = a[i];
     }
   }

   // Determino il minore dei numeri
   if(a[n-1] < a[n-2]){
     min = a[n-1];
   }else{
     min = a[n-2];
   }
   for (i = n - 3; i >= 0; i--) {
     if (min > a[i]) {
       min = a[i];
     }
   }

   printf("Massimo: %d\n", max);
   printf("Minimo: %d\n", min);
  return 0;
}


Il programma funziona, il problema è che l'ho creato usando un array dinamico , e quindi un puntatore.
Nel capitolo del libro in cui è presente questo problema, array e puntatori non sono stati ancora trattati, dunque non dovrei usarli.
Qualcuno a qualche idea su come farne a meno?

Grazie in anticipo per le risposte.
Spesso l'informatica è più un'arte che una scienza
lcproductions
Jr. Member
Jr. Member
 
Messaggi: 57
Iscritto il: 30/12/2015, 22:07

Re: Trovare il maggiore tra N numeri in C

Messaggioda marcomg » 15/12/2017, 22:46

Ti bastano 3 variabili: una di appoggio dove prelevi il valore, una con il massimo e una con il minimo. La prima volta che prelevi massimo e minimo coincidono, poi fai i dovuti controlli ad ogni acquisizione e salvi il valore dei nuovi max e min se necessario.
Scusa la brevità ma sono da smartphone ;)
Windows is what you open when you want fresh air from outside.
Avatar utente
marcomg
Global Moderator
Global Moderator
 
Messaggi: 5510
Iscritto il: 22/08/2011, 18:54

Re: Trovare il maggiore tra N numeri in C

Messaggioda lcproductions » 16/12/2017, 16:22

Potresti farmi un esempio con del codice, o almeno con un algoritmo ?
Spesso l'informatica è più un'arte che una scienza
lcproductions
Jr. Member
Jr. Member
 
Messaggi: 57
Iscritto il: 30/12/2015, 22:07

Re: Trovare il maggiore tra N numeri in C

Messaggioda marcomg » 17/12/2017, 23:30

Windows is what you open when you want fresh air from outside.
Avatar utente
marcomg
Global Moderator
Global Moderator
 
Messaggi: 5510
Iscritto il: 22/08/2011, 18:54

Re: Trovare il maggiore tra N numeri in C

Messaggioda lcproductions » 18/12/2017, 22:47

Grazie mille, domani proverò.
Spesso l'informatica è più un'arte che una scienza
lcproductions
Jr. Member
Jr. Member
 
Messaggi: 57
Iscritto il: 30/12/2015, 22:07

Re: Trovare il maggiore tra N numeri in C

Messaggioda lcproductions » 19/12/2017, 19:23

Okay, sono riuscito a scrivere del codice funzionante.
Lo posto qui per gli altri utenti e metto "Risolto nel titolo"
Codice: Seleziona tutto
/*
  PROBLEMA: dati in input N numeri interi, trova il maggiore e il minore tra essi
  V. 2
*/
#include <stdio.h>

int main() {
  int x,n,mg,mn,i;
  printf("Quanti numeri vuoi inserire?");
  scanf("%d", &n);
  printf("Inserisci i tuoi numeri\n");
  scanf("%d", &x);
  mn = mg = x;
  for (i = 1; i < n; i++) {
    scanf("%d", &x);
    if (mg < x) {
      mg = x;
    }else if(mn > x){
      mn = x;
    }
  }
  printf("Maggiore: %d\n", mg);
  printf("Minore: %d\n", mn);
  return 0;
}

Spesso l'informatica è più un'arte che una scienza
lcproductions
Jr. Member
Jr. Member
 
Messaggi: 57
Iscritto il: 30/12/2015, 22:07

Re: [RISOLTO] Trovare il maggiore tra N numeri in C

Messaggioda marcomg » 20/12/2017, 20:09

Ottimo lavoro, ho messo risolto ;)
Windows is what you open when you want fresh air from outside.
Avatar utente
marcomg
Global Moderator
Global Moderator
 
Messaggi: 5510
Iscritto il: 22/08/2011, 18:54


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite