Witam. Mam dziwny problem. Wie ktoś może czemu nie działa ten kod. Chodzi o to, że program ma przekonwertować liczby podane w parametrach w wierszu poleceń na postać binarną. Do tego ma pobrać operator także podany w tych parametrach. Konwersja z liczby dziesiętnej na dwójką działa. Pojawił się problem gdy chce zrobić operację logiczną. Gdy wpisuje nazwa_programu.exe 10 9 OR program niby wyświetla dwie liczby binarne i jakąś tam operacje lecz jest to ciągle and. Dodatkowo jeszcze wypisuje komunikat "Nie podałeś operatora" obok tej operacji za każdym razem. Co zrobić aby program po wpisaniu w trzecim parametrze danej operacji wykonywał ją poprawnie? Nie mam już pomysłu jak to naprawić :(
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int podaj_liczbe()
{
int liczba_dziesietna;
printf("Podaj liczbe: ");
scanf("%d", &liczba_dziesietna);
return liczba_dziesietna;
}
int konwersja(int liczba_dziesietna)
{
int i=0, tab[31];
while(liczba_dziesietna)
{
tab[i++]=liczba_dziesietna%2;
liczba_dziesietna/=2;
}
for(int j=i-1;j>=0;j--)
printf("%d",tab[j]);
}
int main ( int argc, char* argv[] )
{
int wynik, wynikk, wynikkk;
printf(" ");
konwersja(atoi(argv[1]));
printf(" ");
konwersja(atoi(argv[2]));
if((argv[3])=="OR"){
wynik = atoi(argv[1]) | atoi(argv[2]);
printf("=");
konwersja(wynik);
}else if((argv[3])=="AND"){
wynik = atoi(argv[1]) & atoi(argv[2]);
printf("=");
konwersja(wynikk);
}else if((argv[3])=="XOR"){
wynik = atoi(argv[1]) ^ atoi(argv[2]);
printf("=");
konwersja(wynikkk);
}else{
printf("Nie podales operatora");
}
return 0;
}
`````````````````````````````````````````````````````````````````````````````````````````````````````````