Программа N queen: пользователь-это тот, кто будет вводить строку и столбец позиции queen
В этой программе пользователь должен сам вводить строку и столбец королевы на каждой итерации, и, к счастью, мне это удалось. Проблема в том, что на каждой итерации ферзя должна быть функция, которая будет проверять, безопасно ли размещать строку и столбец или нет. Функция должна проверить по вертикали, горизонтали и диагонали, существует ли ферзь, если да, то появится сообщение о том, что ферзь существует, и вернется на текущий счетчик ферзя. Это то, что я сделал до сих пор. Любая помощь очень ценится, спасибо.
#include<stdio.h> #include<math.h> int i, j,n; int a[20][20]; int row, col; main() { clrscr(); printf("Enter no. of queen(s): "); scanf("%d",&n); print_board(); for(i=1;i<=n;i++) { printf("\n\nPosition of Queen %d",i); printf("\n\tRow: "); scanf("%d",&row); printf("\tColumn: "); scanf("%d",&col); if(safeToPlace(row,col) == 1) { place_Queen(row,col); } } print_Array(); getch(); } int print_board() { for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { a[i][j] = '-'; } } } int print_Array() { for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { printf("%c\t",a[i][j]); } printf("\n\n"); } printf("\n"); } int place_Queen(int row, int col) { a[row][col] = 'Q'; } /* The function were I got the problem */ int safeToPlace(int row, int col) { int i, j, flag; for(i=1;i<=row;i++) { for(j=1;j<=n;j++) { int k = abs(row - i); int l = abs(col - n); if(a[i][col] != 'Q' && a[k][l] != 'Q') { flag =1; } else { flag =0; break; } } } return flag; }
Что я уже пробовал:
Я попробовал поискать в гугле и понял, в чем дело. Но с другой стороны, программа N Queen сильно отличается, потому что строка и столбец должны быть введены пользователем.
[no name]
Ваш учитель может помочь вам, если вы не понимаете своего домашнего задания. Это их работа, так что вы должны спросить их.
[no name]
Сообщение обновлено уже 5 раз, и до сих пор нет никаких признаков реального вопроса.