Te dejo el código...
#include <iostream>
using namespace std;
int main() {
int x = 11;
for(int i = 0; i < x; i++) {
for(int j = 0; j < x; j++) {
if(j == i || j == (x-1) - i) {
cout << " ";
} else {
cout << "*";
}
}
cout << endl;
}
}
La posición de los espacios en blanco para formar la "X" tienden a aumentar y disminuir... osea primero se dibuja una "\" que en este caso va de 0 a 10, y una "/" que va de 10 a 0, colocando las posiciones en un plano quedaría:
(0,
0), (0,
10)
(1,
1), (1,
9)
(2,
2), (2,
8)
.
.
.
(10,
10), (10,
0)
Una aumenta, otra disminuye... eso se cumple en la condición:
if(j == i || j == (x-1) - i) {
cout << " ";
} else {
cout << "*";
}
Haz una pueba de escritorio con las variables y verás que se cumplen perfectamente las condiciones