Oppure

Loading
13/08/19 19:57
Mikelius
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.
aaa
13/08/19 20:42
AldoBaldo
Se guardi la prima versione che ci ha proposto, vedi che ha usato while(n>0), il che significa che intende considerare solo valori compresi tra 1 e il valore massimo ammissibile per un int. Che è poi la stessa cosa che ha preso in considerazione nessuno, probabilmente perché anche lui ha notato quel while(n>0).

Sul fatto che sia bene conoscere il testo prima di affermare qual è una soluzione corretta e quale no, hai ragione da vendere. Per qualche motivo, capita spesso che chi propone dubbi derivanti da esercizi, raramente includa la traccia degli esercizi stessi. Strano, eh?
ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti.
14/08/19 6:23
nessuno
Fenice... invece di modificare a caso il codice perché nom ripartiamo dal primo con le modifiche che ti ho suggerito?

Prova quello con una sequenza terminata da 0
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à.
14/08/19 8:49
fenice
Questo è il codice però lo voglio fare con il ciclo for, però non mi esce

#include<stdio.h>
#include<conio.h>
#include<windows.h>
main()
{
	int n=1,min=INT_MAX;
	while(n>0) {
		printf("Inserisci un numero\n");
		scanf("%d",&n);
		if(n>0&&n<min)
			min=n;}
	printf("Il minimo e' %d\n", min);
	getch();
}

aaa
14/08/19 9:00
Mikelius
Postato originariamente da fenice:

Questo è il codice però lo voglio fare con il ciclo for, però non mi esce

#include<stdio.h>
#include<conio.h>
#include<windows.h>
main()
{
	int n=1,min=INT_MAX;
	while(n>0) {
		printf("Inserisci un numero\n");
		scanf("%d",&n);
		if(n>0&&n<min)
			min=n;}
	printf("Il minimo e' %d\n", min);
	getch();
}



Questo ok. Posta quello col for
aaa
14/08/19 9:21
nessuno
Ma perché lo devi fare con un ciclo for?

Il ciclo for NON è adatto al tuo esercizio. Ã^ meglio usare il while come avevi fatto all'inizio. Perché non ascolti i suggerimenti?

Oppure mostra il TESTO dell'esercizio!
Ultima modifica effettuata da nessuno 14/08/19 9:33
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à.