Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Алина1234
0 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 51
#1

Заполнить квадратную матрицу по правилу «шахматная доска» - C++

08.07.2015, 10:00. Просмотров 246. Ответов 9
Метки нет (Все метки)

Помогите заполнить квадратную матрицу порядка N по следующему правилу: «шахматная доска» - чередовать в каждой строке числа 0 и 1, причем одна строка начинается с 0, другая – с 1, и т.д.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.07.2015, 10:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Заполнить квадратную матрицу по правилу «шахматная доска» (C++):

Заполнить квадратную матрицу порядка N по определенному правилу - C++
Дан двумерный массив состоящий из NxN( N вводится с клавиатуры). задача заключается в том, что надо сделать так: ...

Заполнить квадратную матрицу согласно заданному правилу - C++
помогите пожалуйста Заполнить двумерный массив размером 7 на 7 пояснением если не трудно на языке c++ заранее спасибо

Получить квадратную матрицу по правилу - C++
кто может напишите код пожалуйста

Получить целочисленную квадратную матрицу по правилу - C++
Добрый день! Помогите решить задачку. Дана вещественная квадратная матрица порядка N. Получить целочисленную квадратную матрицу, в...

Построить квадратную целочисленную матрицу указанного порядка по заданному правилу - C++
Построить целочисленную матрицу A(10;10), заполнив её следующим образом: a(1,1)=1 a(1,2)=a(2,2)=а(2,1)=2 ...

Построить целочисленную квадратную матрицу заданного порядка по указанному правилу - C++
5. Построить целочисленную матрицу А(7;7) на побочной диагонали которой 1, над ней 2, под ней 3, все остальное 0.

9
Nkey
308 / 61 / 10
Регистрация: 21.12.2011
Сообщений: 285
Завершенные тесты: 2
08.07.2015, 11:04 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <stdio.h>
#define n 6
 
int main() {
    int a[n][n];
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            if (n % 2 == 0) {
                if ((j + (i*(n - 1))) % 2 == 0)
                    a[i][j] = 0;
                else
                    a[i][j] = 1;
            }
            else {
                if ((j + (i*n)) % 2 == 0)
                    a[i][j] = 0;
                else
                    a[i][j] = 1;
            }
        }
    }
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            printf("%i ", a[i][j]);
        }
        printf("\n");
    }
    getchar();
}
1
Алина1234
0 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 51
08.07.2015, 11:13  [ТС] #3
Спасибо большое!
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,530
Завершенные тесты: 1
08.07.2015, 11:38 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int main()
{
const N = 4;
int matr[N][N] = {0};
 
static bool odd_even = false;
for( int i=0; i<N; i++ )
  {
  odd_even ^= 1;
  for( int j=odd_even; j<N; j+=2 )
    matr[i][j] = 1;
  }
 
for( int i=0; i<N; i++ )
  {
  for( int j=0; j<N; j++ )
    cout << matr[i][j] << " ";
  cout << "\n";
  }
cin.ignore();
return 0;
}
0
Doddger
11 / 14 / 3
Регистрация: 24.09.2014
Сообщений: 98
08.07.2015, 12:28 #5
Реализовал так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
 
int main()
{
    int i, j;
    int n;
    cout << "n = ";
    cin >> n;
    int mass[n][n];
    cout << "mass: \n";
    for (i = 0; i < n; i++)
        for (j = 0; j < n; j++){
            if (((i + j) % 2) == 0)
                mass[i][j] = 0;
            else
                mass[i][j] = 1;
            cout << mass[i][j] << (j == (n - 1) ? "\n" : " ");
 
        }
    
    return 0;
}
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,530
Завершенные тесты: 1
08.07.2015, 12:49 #6
Цитата Сообщение от Doddger Посмотреть сообщение
C++
1
2
3
4
            if (((i + j) % 2) == 0)
                mass[i][j] = 0;
            else
                mass[i][j] = 1;
C++
mass[i][j] = ((i + j) % 2)? 1 : 0;
Если уж на то пошло.
0
Doddger
11 / 14 / 3
Регистрация: 24.09.2014
Сообщений: 98
08.07.2015, 12:54 #7
Век живи - век учись (с)
0
Kastaneda
Форумчанин
Эксперт С++
4655 / 2863 / 228
Регистрация: 12.12.2009
Сообщений: 7,275
Записей в блоге: 2
Завершенные тесты: 1
08.07.2015, 12:54 #8
C++
1
mass[i][j] = (i + j) % 2;
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Если уж на то пошло
1
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,530
Завершенные тесты: 1
08.07.2015, 12:57 #9
Kastaneda, я тут думал мож через memset как-то реализовать поинтересней.
0
Kastaneda
Форумчанин
Эксперт С++
4655 / 2863 / 228
Регистрация: 12.12.2009
Сообщений: 7,275
Записей в блоге: 2
Завершенные тесты: 1
08.07.2015, 18:43 #10
Цитата Сообщение от SatanaXIII Посмотреть сообщение
я тут думал мож через memset как-то реализовать поинтересней.
Не, там побайтно заполняется, неполучится. Через std::fill можно сделать.

Добавлено через 32 минуты
Как-то так
C++
1
2
3
4
long long *begin = (long long*)matr;
long long *end = (long long*)((long long)(&matr[N - 1][N - 1]) & ~7); // warning: 18+
std::fill(begin, end, 1L);
matr[N - 1][N - 1] = 1;
1. Только если N нечетное
2. С расчетом, что sizof(int) * 2 = sizeof(long long)
3. С расчетом, что &matr[0] % 8 = 0

Короче просто поиграться, не для продакшна. Некогда додумывать, еще на работе
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2015, 18:43
Привет! Вот еще темы с ответами:

Заполнить квадратную матрицу по спирали - C++
Одномерный: В заданном целочисленном массиве R(9) определить индекс наибольшего из нечетных по значению положительных элементов. ...

Заполнить квадратную матрицу змейкой - C++
заполнить квадратную матрицу NxN змейкой С++ вот так: 25 24 23 22 21 16 17 18 19 20 15 14 13 12 11 6 7 8 9 10 5 4 3 2 1

Заполнить квадратную матрицу змейкой - C++
Задано число N. Заполните квадратную матрицу NxN числами от 1 до N^2 “змейкой”, как показано в примере. 4 1 8 9 16 2 7 10 15...

Заполнить квадратную матрицу 10 на 10 змейкой - C++
заполнить квадратную матрицу 10 на 10 змейкой С++ вот так: 91 92 93 94...98 99 100 90 89 88 87...83 82 81 . . . 11 12 13...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Yandex
Объявления
08.07.2015, 18:43
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru