Błąd w kodzie wypisywanie koloru pola na szachownicy

0

Witam
Mam do napisania zadanko w języku C
Po podaniu kolumny i wiersza z siatki szachownicy ( na przykład g5) ma mi się wyświetlić czy jest to pole czarne czy białe. Napisałem coś takiego:

#include <stdio.h>
#include <stdlib.h>

int main()
{
        char lit;
    int cyfr;
    printf("podaj literke szachownicy:");
    scanf("%c",&lit);
    printf("podaj cyferke szachownicy:");
    scanf("%d",&cyfr);
    if(lit=="A"||"C"||"E"||"G"){
    if(cyfr%2==0)
    printf("biale");
    else
    printf("czarne");
    }
    else if(lit=="B"||"D"||"F"||"H"){
    if(cyfr%2==0) 
    printf("czarne");
    else
    printf("biale");

    }


    return 0;
}

I o ile pierwsza pętla działa świetnie to druga już nie.
Kiedy wpisuję a1 to prawidłowo wyświetla się "czarne" w przypadku a2 również prawidłowo "biale"
Jednak przy wpisywaniu b1 wyświetla się nieprawidłowo "czarne" b2 również nieprawidłowo "biale" i nie wiem co z tym zrobić bo już długo siedzę na tym kodem i nic :(

3

if(lit=="A"||"C"||"E"||"G") to nie to samo co if(lit=="A" || lit=="C" || lit=="E" || lit=="G")
Poza tym raczej 'A' zamiast "A".

2
#include <stdio.h>
 
int main()
  {
   char alpha;
   int digit;
   printf("podaj pole szachownicy: ");
   scanf("%c%d",&alpha,&digit);
   printf("%s\n",((alpha^digit)&1)?"czarne":"biale");   
   return 0;
  }
0

Poprawiłem i poza tym błędem jeszcze źle pozagnieżdżałem if :) ale już działa.

_13th_Dragon
mógłbyś wytłumaczyć ( łopatologicznie ) co się dzieje w tej linijce:

printf("%s\n",((alpha^digit)&1)?"czarne":"biale");
1

W tej linijce wyświetla się poprawna odpowiedź, pytaj konkretnie, którego operatora nie rozumiesz?

1 użytkowników online, w tym zalogowanych: 0, gości: 1