Witam. Na początku chce zaznaczyć że jestem nowy na tym forum. Mam zadanie stworzyć jak najprostszy program, zmieniający wybrany bit w C.
Oto co napisałem.
int a, i, u, s;
int work = 1;
void binary();
void main() {
printf("Podaj jakas liczbe dodatnia: \n");
scanf("%d", &a);
printf("Twoja liczba to:\n%d jako dziesientna:\n%x jako szesnastkowa: \n", a, a);
binary();
printf(" Twoja liczba w systemie binarnym:");
printf("\n1# - Zmienia wybrany bit na 1\n2# - Wyzerowanie bita\n3# - Odwraca wartosc bita\n4# - Wyswietla twoja obecna liczbe jako dziesietna, szesnastkowa oraz binarna\n5# - Zakonczenie dzialania programu\n");
while (work > 0) {
printf("\nCo chcesz zrobic? ");
scanf("%d", &s);
switch ("%d", s) {
case 1: printf("Ktory bit? ") ;//zmienia na 1
scanf("%d", &u);
--u;
a = a | (1 << u);
break;
case 2: printf("Ktory bit? "); //zeruje bit
scanf("%d", &u);
--u;
a = a & (~(1 << u));
break;
case 3: printf("Ktory bit? "); //odwraca bit
scanf("%d", &u);
--u;
a = a ^ (1 << u);
break;
case 4: printf("\n\Twoja liczba to:\n%d Jako dziesientna\n%x jako szesnastkowa \n ", a, a);
binary();
break;
case 5: work = 0; //wyjœcie
break;
default: break;
}
}
}
void binary() {
for (i = 15; i >= 0; i--) {
if (a & (1 << i)) {
printf("1");
} else {
printf("0");
}
}
}
Problem jest w tym że jak wybieram bit to do zmiany, to program wraca mi z powrotem do okna wyboru. Jakieś sugestie?
Z góry dziękuje za pomoc.