#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
void main() {
int n;
int ** x;
cin >> n;
x = new int * [2 * n];
for (int i = 0; i < 2 * n; i++) {
x[i] = new int[2 * n];
}
for (int i = 0; i < 2 * n; i++)
for (int j = 0; j < 2 * n; j++) {
if (i < n && j < n) {
x[i][j] = 1;
}
if (i < n && j > n) {
x[i][j] = 2;
}
if (i > n && j < n) {
x[i][j] = 3;
}
if (i > n && j > n) {
x[i][j] = 4;
}
}
for (int i = 0; i < 2 * n; i++) {
cout << endl;
for (int j = 0; j < 2 * n; j++) {
cout << x[i][j];
}
}
_getch();
}
Ваши условия не покрывают случай, когда i или j равно n, а стало быть в ячейках с этими индексами остаются неинициализированные данные. Просто добавьте предварительно обнуление в цикл установки значений:
for (int i = 0; i < 2 * n; i++)
for (int j = 0; j < 2 * n; j++) {
x[i][j] = 0; // <-- вот это
if (i < n && j < n) {
Ну или обрабатывайте ветку отдельно.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей