[C] Esercizio: indovina il numero (metodo binsearch)

di il
5 risposte

[C] Esercizio: indovina il numero (metodo binsearch)

Posto che non ho mai programmato nè in C nè in nessun altro modo, all'università stiamo iniziando a programmare e volevo sapere come mai il mio algoritmo mi dà dei problemi.. Utilizzo Visual Studio come IDE che sarà presente anche all'esame. L'esercizio chiede :
? L'utente definisce un intervallo di ricerca [min max] e pensa un numero n compreso nell'intervallo;
? L'elaboratore dà il numero a metà tra min e max, poi chiede se è giusto e se non lo è chiede se è maggiore o minore.

Senza darmi il codice bello e pronto, altrimenti non ci capirei nulla.. Potreste aiutarmi a trovare l'errore?
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//Compiler version gcc 6.3.0

int main()

{
	int minimo, massimo, numero, maggiore_minore, si_no, tentativi = 1;

	printf("Dammi un intervallo di ricerca e pensa un numero all'interno di tale intervallo: ");
	scanf("%d %d", &minimo, &massimo);

	numero = (minimo + massimo) / 2;

	printf("Hai pensato il numero %d giusto? (s/n)", numero);
	scanf("%d", &si_no); //Dopo questo mi mostra il printf("EVVIVA....")

	while (si_no == 'n')
	{
		
		printf("Il numero che hai pensato è maggiore (>) o minore (<) di %d? ", numero);
		scanf("%d", &maggiore_minore);
		tentativi++;

		if (maggiore_minore = '<')
			massimo = numero - 1;
		else
			minimo = numero + 1;
	}

	printf("EVVIVA! Ho indovinato in %d tentativi", tentativi);

return 0;
}

5 Risposte

Devi accedere o registrarti per scrivere nel forum
5 risposte