Oppure

Loading
13/08 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 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?
aaa
14/08 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 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 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 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 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à.