Oppure

Loading
13/08/19 10:44
fenice
Buongiorno ho fatto questo programma però non riesco a trovare il numero minore, perché la condizione secondo me è sbagliata.

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


aaa
13/08/19 11:09
nessuno
int n=1, min=INT_MAX;

if(n>0 && n<min)
Ultima modifica effettuata da nessuno 13/08/19 11: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à.
13/08/19 15:03
fenice
Ho provato a scriverlo anche con il ciclo for però la condizione di uscita è sbagliata secondo me.

#include<stdio.h>
#include<conio.h>
#include<windows.h>
main()
{
	int n=1,min=INT_MAX;
	for(n=1;n<=0;n++)
	{	printf("Inserisci un numero\n");
		scanf("%d",&n);
		if(n>0&&n<min)
			min=n;}
	printf("Il minimo e' %d\n", min);
	getch();
}
aaa
13/08/19 15:06
Mikelius
Scusa, ma il numero minore rispetto a cosa?
aaa
13/08/19 15:59
fenice
Trovare il numero più piccolo della sequenza
aaa
13/08/19 16:00
fenice
Trovare il numero più piccolo della sequenza
aaa
13/08/19 17:58
Mikelius
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!
aaa
13/08/19 19:47
AldoBaldo
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).
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.