Информатика, вопрос задал povaznija , 2 года назад


Написати мовою Ci: Поле шахівниці визначається парою натуральних чисел, кожне з яких не перевищує 8: перше число - номер вертикалі (при відліку зліва направо), друге - номер горизонталі (при відліку знизу догори). Дано натуральні числа a, b, c, d, кожне з яких не перевищує 8. Визначити, чи поля (a, b) і (c, d) полями одного кольору.

Ответы на вопрос

Ответил WellUnknownUser
1

Ответ:

1)

#include <stdio.h>

#include <stdbool.h>

bool CheckColor(unsigned short int first, unsigned short int second){

   if((first % 2) == (second % 2)){

       return false;

   }else{

       return true;

   }

}

int main(){

   

   unsigned short int a, b, c, d;

   bool firstcolor, secondcolor; // 0 - black; 1 - white

   

   printf("Enter a: \n");

   scanf("%hd", &a);

   printf("Enter b: \n");

   scanf("%hd", &b);

   printf("Enter c: \n");

   scanf("%hd", &c);

   printf("Enter d: \n");

   scanf("%hd", &d);

   

   firstcolor = CheckColor(a,b);

   secondcolor = CheckColor(c,d);

   

   if(firstcolor == secondcolor){

       printf("Equal");

   }else{

       printf("Not equal");

   }

   

   return 0;

}

2)

#include <stdio.h>

#include <stdbool.h>

int main(){

   bool ChessBoard[8][8] = {

       {0,1,0,1,0,1,0,1},

       {1,0,1,0,1,0,1,0},

       {0,1,0,1,0,1,0,1},

       {1,0,1,0,1,0,1,0},

       {0,1,0,1,0,1,0,1},

       {1,0,1,0,1,0,1,0},

       {0,1,0,1,0,1,0,1},

       {1,0,1,0,1,0,1,0}

   };

   

   unsigned short int a, b, c, d;

   

   printf("Enter a: \n");

   scanf("%hd", &a);

   printf("Enter b: \n");

   scanf("%hd", &b);

   printf("Enter c: \n");

   scanf("%hd", &c);

   printf("Enter d: \n");

   scanf("%hd", &d);

   

   if(ChessBoard[a-1][b-1] == ChessBoard[c-1][d-1]){

       printf("Equal");

   }else{

       printf("Not equal");

   }

   

   return 0;

}

3)

#include <stdio.h>

#include <stdbool.h>

int main(){

   

   bool ChessBoard[8][8];

   bool Current = false;

   

   for(unsigned short int i = 0; i < 8; i++){

       for(unsigned short int j = 0; j < 8; j++){

           ChessBoard[i][j] = Current;

           if(Current == false){

               Current = true;

           }else{

               Current = false;

           }

       }

       if(Current == false){

           Current = true;

       }else{

           Current = false;

       }

   }

   

   unsigned short int a, b, c, d;

   

   printf("Enter a: \n");

   scanf("%hd", &a);

   printf("Enter b: \n");

   scanf("%hd", &b);

   printf("Enter c: \n");

   scanf("%hd", &c);

   printf("Enter d: \n");

   scanf("%hd", &d);

   

   if(ChessBoard[a-1][b-1] == ChessBoard[c-1][d-1]){

       printf("Equal");

   }else{

       printf("Not equal");

   }

   

   return 0;

}

Объяснение:

Я рекомендую первую.

Новые вопросы