Chiarimento su questo programma in C

di il
15 risposte

Chiarimento su questo programma in C

L'esercizio chiede di costruire un programma che prenda in input una sequenza di interi, con ciclo a valore sentinella...e dalla sequenza determini il piu piccolo inserito...ora ho ragionato cosi:


#include <stdio.h>

int main()
{
      int number, minore, maggiore;
      
      minore = 0;
      
      maggiore = 0;
      
      printf("Inserisci un intero: ");
      scanf("%d", &number);
      
      while(number != -1){
                   
          if(number > maggiore){
          
          maggiore = number;
          
          }
      
      else
      
          if(number < maggiore){
          
          minore = number;
          
          }
          printf("\n\nInserisci un intero: ");
          scanf("%d", &number);
          }
      
      printf("\n\nIl piu piccolo inserito e': %d", minore);
      
      return 0;
      
      }
ho notato che in questo modo, funziona per un solo tot, di sequenza...se aumento considerevolemnte i dati, non visualizza piu quello piu piccolo...dove sbaglio?

15 Risposte

  • Re: Chiarimento su questo programma in C

    Quando number = maggiore o minore che succede?
  • Re: Chiarimento su questo programma in C

    Il numero immesso dalla tastiera viene immaganizzinato nelle variabili...
  • Re: Chiarimento su questo programma in C

    In quale dei due? minore o maggiore?
  • Re: Chiarimento su questo programma in C

    Vediamo...il maggiore che lo immagazzino a fare? mi serve il minore...
  • Re: Chiarimento su questo programma in C

    Temo di essermi perso...
  • Re: Chiarimento su questo programma in C

    
    #include <stdio.h>
    #define min(a,b) a < b ? a : b
    
    int main()
    {
    	int number, minore;
    
    	minore = 100000;
    
    	printf("Inserisci un intero: ");
    	scanf("%d", &number);
    
    	while(number != -1)
    	{
           minore = min(minore,number);
           printf("\n\nInserisci un intero: ");
           scanf("%d", &number);
         }
    	printf("\n\nIl piu piccolo inserito e': %d", minore);
    
    	return 0;
    
    }
    
  • Re: Chiarimento su questo programma in C

    Scusa sky..ma...il tuo programma restituisce sempre 0...il fine dell'esercizio, almeno per quanto ho capito...è quello, che in input, dovrà esserci una serie di numeri != da 0 o = 0...e da essi determinare il piu piccolo...
  • Re: Chiarimento su questo programma in C

    Metti minore = 10000 (o un numero molto alto e riprova).
  • Re: Chiarimento su questo programma in C

    Oppure tagliamo la testa al toro. Questa funzia sempre.
    
    #include <stdio.h>
    #include <limits.h>
    #define min(a,b) a < b ? a : b
    
    int main()
    {
    	int number, minore;
    
    	minore = INT_MAX;
    
    	printf("Inserisci un intero: ");
    	scanf("%d", &number);
    
    	while(number != -1)
    	{
           minore = min(minore,number);
           printf("\n\nInserisci un intero: ");
           scanf("%d", &number);
         }
    	printf("\n\nIl piu piccolo inserito e': %d", minore);
    
    	return 0;
    
    }
    
    
  • Re: Chiarimento su questo programma in C

    No sky, è+ che delle volte mi perdo in delle cose talmente banali, che mi faccio paura...non è piu semplice fare cosi?
    
    #include <stdio.h>
    #include <conio.h>
    
    main()
    {
          int number, minore, maggiore;
          
          minore = 100000;
          
          
          printf("Inserisci un intero: ");
          scanf("%d", &number);
          
          while(number != -1){
                       
              if(number < minore){
              
              minore = number;
              
              }
          
              printf("\n\nInserisci un intero: ");
              scanf("%d", &number);
              }
          
          printf("\n\nIl piu piccolo inserito e': %d", minore);
          
          getch();
          
          }
    
    
    oggi il mio mac col prezioso x-code, mi ha voluto abbandonare...grazie comunque sky!!! ci sono
  • Re: Chiarimento su questo programma in C

    
    #define min(a,b) a < b ? a : b
    
    è uguale a
    
    if(a < b)
      minore = a;
    else 
     minore = b;
    
    come vedi è lo stesso codice scritto in maniera diversa.
  • Re: Chiarimento su questo programma in C

    Si si...è corretto, ho riprovato anche il tuo codice, modificando il valore della variabile...mi ha fregato il mix, variabile definita in una sequenza non...andavo contro i mulini a vento...ma ci sono...ti ringrazio della pazienza...
  • Re: Chiarimento su questo programma in C

    Ancora una curiosità sky...la direttiva preprocessore, define...a cosa serve?? sin ora non l'ho mai vista nel mio percorso, sul C...so che sicuramente servirà poi al linker per "tappare" i buchi, in fase compilativa...ma nello specifico, non ho idea a cosa serva...
  • Re: Chiarimento su questo programma in C


Devi accedere o registrarti per scrivere nel forum
15 risposte