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;
}