Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Il valore minimo
Forum - C/C++ - Il valore minimo

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
fenice (Normal User)
Newbie


Messaggi: 19
Iscritto: 10/08/2019

Segnala al moderatore
Postato alle 12:44
Martedì, 13/08/2019
Buongiorno ho fatto questo programma però non riesco a trovare il numero minore, perché la condizione secondo me è sbagliata.

Io ho scritto questo:
Codice sorgente - presumibilmente C/C++

  1. #include<stdio.h>
  2. #include<conio.h>
  3. #include<windows.h>
  4. main()
  5. {
  6.         int n,min;
  7.         while(n>0) {
  8.                 printf("Inserisci un numero\n");
  9.                 scanf("%d",&n);
  10.                 if(n>0&&(min=0||n<min))
  11.                         min=n;}
  12.         printf("Il minimo e' %d\n", min);
  13.         getch();
  14. }




PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5878
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 13:09
Martedì, 13/08/2019
int n=1, min=INT_MAX;

if(n>0 && n<min)

Ultima modifica effettuata da nessuno il 13/08/2019 alle 13:37


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
fenice (Normal User)
Newbie


Messaggi: 19
Iscritto: 10/08/2019

Segnala al moderatore
Postato alle 17:03
Martedì, 13/08/2019
Ho provato a scriverlo anche con il ciclo for però la condizione di uscita è sbagliata secondo me.

Codice sorgente - presumibilmente C/C++

  1. #include<stdio.h>
  2. #include<conio.h>
  3. #include<windows.h>
  4. main()
  5. {
  6.         int n=1,min=INT_MAX;
  7.         for(n=1;n<=0;n++)
  8.         {       printf("Inserisci un numero\n");
  9.                 scanf("%d",&n);
  10.                 if(n>0&&n<min)
  11.                         min=n;}
  12.         printf("Il minimo e' %d\n", min);
  13.         getch();
  14. }


PM Quote
Avatar
Mikelius (Member)
Expert


Messaggi: 490
Iscritto: 14/04/2017

Segnala al moderatore
Postato alle 17:06
Martedì, 13/08/2019
Scusa, ma il numero minore rispetto a cosa?


"Io ne ho viste cose che voi umani non potreste immaginarvi...."
PM Quote
Avatar
fenice (Normal User)
Newbie


Messaggi: 19
Iscritto: 10/08/2019

Segnala al moderatore
Postato alle 17:59
Martedì, 13/08/2019
Trovare il numero più piccolo della sequenza

PM Quote
Avatar
fenice (Normal User)
Newbie


Messaggi: 19
Iscritto: 10/08/2019

Segnala al moderatore
Postato alle 18:00
Martedì, 13/08/2019
Trovare il numero più piccolo della sequenza

PM Quote
Avatar
Mikelius (Member)
Expert


Messaggi: 490
Iscritto: 14/04/2017

Segnala al moderatore
Postato alle 19:58
Martedì, 13/08/2019
Sai quanto è lunga la sequenza?

Il for deve partire da 1 ed arrivare al Numero di elementi della sequenza, E COSA IMPORTANTE:
Se modifichi il contatore del for, non potrà mai funzionare.
Per il for usa un contatore diverso da n!


"Io ne ho viste cose che voi umani non potreste immaginarvi...."
PM Quote
Avatar
AldoBaldo (Member)
Expert


Messaggi: 423
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 21:47
Martedì, 13/08/2019
Si può fare anche senza conoscere in anticipo la quantità delle immissioni, giusto con n e min come sta già facendo.

L'idea di preimpostare min con INT_MAX come ha detto nessuno funziona.

In alternativa, si può fare in modo che il primo valore immesso venga subito accettato come quello minimo (essendo il primo, non c'è ancora niente con cui confrontarlo) e copiato in min. Ai passaggi successivi si può fare min = n<min ? n : min; (che equivale a "if(n<min) min=n; else min=min;").

Per uscire dal ciclo può essere comodo usare break quando si incontra n<=0 subito dopo l'immissione (prima di effettuare qualsiasi confronto con min).


Ma cosa vuoi che ne sappia? Io ci gioco, col codice, mica ci lavoro!
PM Quote
Avatar
Mikelius (Member)
Expert


Messaggi: 490
Iscritto: 14/04/2017

Segnala al moderatore
Postato alle 21:57
Martedì, 13/08/2019
Testo quotato

Postato originariamente da AldoBaldo:

In alternativa, si può fare in modo che il primo valore immesso venga subito accettato come quello minimo (essendo il primo, non c'è ancora niente con cui confrontarlo) e copiato in min. Ai passaggi successivi si può fare min = n<min ? n : min; (che equivale a "if(n<min) min=n; else min=min;").



Tutto dipende essenzialmente dai valori accettati, Se non accetta valori negativi, ed il primo valore è negativo, questo ragionamento non fila. Ma se accetta valori negativi, non si può uscire dal ciclo con n<=0 .

bisogna conoscere bene il testo.


"Io ne ho viste cose che voi umani non potreste immaginarvi...."
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo