hab auch erlaubt a bisserl rumzupfuschen ... (funktioniert jetzt auch bei einem doppelklick auf die .exe

)
Code:
#include <stdio.h>
#include <conio.h>
int main()
{
unsigned short usLower = 0;
unsigned short usUpper = 0;
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!");
getch();
return(0);
} // if
// diese konstruktion ist nicht besonders elegant. aber fuer diese zwecke reichts alle mal
while (1)
{
// ungefaehre haelfte des intervalls ermitteln
usQuery = usLower + (usUpper - usLower) / 2;
printf("\nIst die Zahl groesser (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);
break;
} // if
switch (usChar)
{
case 'g': // die Zahl ist groesser
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);
break;
default:
printf("\nUngueltige Eingabe. Programm wird beendet!");
break;
} // switch
} // while
getch();
return(0);
} // main
gruß
pc.net