@irrsinn i hab ma erlaubt deine version abzuändern, ich hoff es geht ohne probs
Code:
#include <stdio.h>
#include <conio.h>
#define obergrenze 100
#define untergrenze 0
int main()
{
unsigned short usLower = untergrenze;
unsigned short usUpper = obergrenze;
unsigned short usQuery = 0;
unsigned short usChar = 0;
/* // Zu behandelndes Intervall abfragen
printf("\nIntervall Untergrenze eingeben: ");
scanf("%d", &usLower);
printf("\nIntervall Obergrenze eingeben: ");
scanf("%d", &usUpper);
if (usLower == usUpper)
{
printf("\nUnter und Obergrenze sind gleich!");
exit(0);
} // if
*/
// diese konstruktion ist nicht besonders elegant. aber für diese zwecke reichts alle mal
for ( ; ; )
{
// ungefähre hälfte des intervalls ermitteln
usQuery = usLower + (usUpper - usLower) / 2;
printf("\nIst die Zahl größer (g), kleiner (k) oder gleich (e) %d", usQuery);
usChar=getch();
// ist die Zahl schon gefunden?
if ((usUpper - usLower) == 2)
{
printf("\nDie gesuchte Zahl ist %d", usQuery);
getch();
exit(0);
} // if
switch (usChar)
{
case 'g': // die Zahl ist größer
usLower = usQuery;
break;
case 'k': // die Zahl ist kleiner
usUpper = usQuery;
break;
case 'e': // die Zahl ist gefunden
printf("\nDie gesuchte Zahl ist %d", usQuery);
getch();
exit(0);
break;
default:
printf("\nUngültige Eingabe. Programm wird beendet!");
exit(0);
break;
} // switch
} // for
} // main