#include <iostream>
using namespace std;
int main() {
int y, x;
char A[8][8];
for(int i = 0; i<8; ++i) {
for (int j = 0; j < 8; ++j) {
cin >> A[i][j];
if(int(A[i][j]) == 70){
y = i;
x = j;
}
}
}
for(int i = 0; i<8; ++i) {
for (int j = 0; j < 8; ++j) {
if(i == y && j != x){
A[i][j] = '!';
} else if(j == x && i != y){
A[i][j] = '!';
}
}
}
for(int x1 = x-1, y1 =y-1;y1 >= 0, x1 >= 0; --x1, --y1){
A[y1][x1] = '!';
}
for(int x1 = x+1, y1 =y+1; y1 <= 8, x1 <= 8; ++x1, ++y1){
A[y1][x1] = '!';
}
for(int x1 = x+1, y1 =y-1; y1 >= 0, x1 <= 8; ++x1, --y1){
A[y1][x1] = '!';
for(int i = 0; i<8; ++i) {
for (int j = 0; j < 8; ++j) {
cout << A[i][j];
}
cout << endl;
}
}
for(int x1 = x-1, y1 =y+1; y1 <= 8, x1 >= 0; --x1, ++y1){ //ошибка где то в этих форах но где понять не могу
A[y1][x1] = '!';
}
for(int i = 0; i<8; ++i) {
for (int j = 0; j < 8; ++j) {
cout << A[i][j];
}
cout << endl;
}
}
Correct output:
!...!...
.!..!..!
..!.!.!.
...!!!..
!!!!F!!!
...!!!..
..!.!.!.
.!..!..!
Your code output:
!...!...
!!..!..!
..!.!.!.
...!!!..
!!!!F!!!
...!!!..
..!.!.!.
.!..!..!
int(A[i][j]) == 70)
. Блин. А A[i][j] == 'F'
написать религия не позволяет?<= 8
, когда как индексы в матрице от 0 до 7. И при координате равной 8 вы пишите в какую-то левую память. Иногда совпадает, что это начало следующей строки. Иногда вы можете перезаписывать какую-то другую переменную. Вообще, программа может и упасть с ошибкой.