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

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

Войти
Регистрация
Восстановить пароль
 
Викулька
0 / 0 / 0
Регистрация: 09.06.2011
Сообщений: 33
#1

Сформировать матрицу по заданному образцу - C++

27.02.2012, 19:48. Просмотров 537. Ответов 9
Метки нет (Все метки)

Двумерный массив
Получить матрицу:

1 0 … 0 1
0 1 … 1 0
. . … . .
0 1 … 1 0
1 0 … 0 1

У меня не че не получается, помогите парни...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2012, 19:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сформировать матрицу по заданному образцу (C++):

Сформировать матрицу по заданному образцу - C++
0 0 0 … 0 0 0 1 0 … 0 0 0 0 2 … 0 0 ……………………. 0 0 0 … 0 n-1

Сформировать квадратную матрицу по заданному образцу - C++
Сформировать квадратную матрицу порядка N по заданному образцу: 111111 222220 333300 444000 550000 600000 Заранее Спасибки!)

Сформировать квадратную матрицу по заданному образцу - C++
Сформируйте квадратную матрицу порядка n по заданному образцу. Протестируйте программу для массива, состоящего из 10*10 элементов. 1 0...

Сформировать квадратную матрицу порядка n по заданному образцу - C++
Сформировать квадратную матрицу порядка n по заданному образцу n n-1 n-2 … 3 2 1 n-1 n-2 n-3 … 2 1 0 n-2 n-3 n-4 … 1 0 0 ...

Сформировать квадратную матрицу порядка n по заданному образцу - C++
всем привет! помогите пожалуйста решить задачу на C нужно сформировать квадратную матрицу порядка n по заданному образцу: 1 2 3 ....

Сформировать квадратную матрицу порядка n по заданному образцу - C++
Сформировать квадратную матрицу порядка n по заданному образцу 0 0 0 … 0 0 0 1 0 … 0 0 0 0 2 ...

9
Deryck
5 / 5 / 0
Регистрация: 01.12.2010
Сообщений: 109
27.02.2012, 20:06 #2
первое что пришло в голову:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char** argv) {
    int i, j, n, k;
    int arr[10][10];
    scanf("%d", &n);
    for (i=1; i<=n; i++){
        if (i%2 != 0){
            k=0;
        }
        else {
            k=1;
        }
        for (j=1; j<=n; j++){
            printf("%d\t", k=abs(k-1));
        }
        printf("\n");
    }
    return (EXIT_SUCCESS);
}
1
Викулька
0 / 0 / 0
Регистрация: 09.06.2011
Сообщений: 33
27.02.2012, 20:23  [ТС] #3
что то не то, должны 1 идти к центру, тоесть надо задать по диагонали, вот что у меня пока есть
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
#pragma hdrstop
#include <conio.h>
#include <iostream>
using namespace std;
 
#pragma argsused
int main(int argc, char* argv[])
{
int n=9,mas[9][9];
for(int i=0; i<n; i++)
{
        for(int j=0; j<n; j++)
        {
                if(i==j && i+j-1)
                mas[i][j]=1;
                else
                mas[i][j]=0;
                cout<<mas[i][j]<<" ";
        }
        cout<<"\n";
}
_getch ();
return 0;
}
0
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
27.02.2012, 20:34 #4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
 
#define SIZE 10
 
int main()
{
    int arr[SIZE][SIZE] = { 0 };
    int i, j;
 
    for(i = 0; i < SIZE; ++i)
        arr[i][i] = arr[i][SIZE - i - 1] = 1;
 
    for(i = 0; i < SIZE; ++i)
    {
        for(j = 0; j < SIZE; ++j)
            printf("%d\t", arr[i][j]);
        printf("\n");
    }
 
    return 0;
}
1
Deryck
5 / 5 / 0
Регистрация: 01.12.2010
Сообщений: 109
27.02.2012, 20:42 #5
ну из того рисунка это было не понятно. сейчас исправлю

Добавлено через 8 минут
это даже проще:
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 <stdio.h>
#include <stdlib.h>
 
int main(int argc, char** argv) {
    int i, j, n;
    int arr[10][10];
    scanf("%d", &n);
    for (i=1; i<=n; i++){
       for (j=1; j<=n; j++){
           if (j==i){
            printf("1");  
           }
           else {
               if (j==n-i+1){
                 printf("1");   
               } 
               else {printf("0");}
        }
       } 
        printf("\n");
    }
    return (EXIT_SUCCESS);
}
1
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
27.02.2012, 20:43 #6
Цитата Сообщение от Deryck Посмотреть сообщение
for (i=1; i<=n; i++){
* * * *for (j=1; j<=n; j++)
Бабах, выход за границы.
1
Deryck
5 / 5 / 0
Регистрация: 01.12.2010
Сообщений: 109
27.02.2012, 20:50 #7
Цитата Сообщение от soon Посмотреть сообщение
Бабах, выход за границы.
в смысле выход? у меня работает? может быть там просто размерность массива надо изменить?
заинтересовали....
1
HardMorg
3 / 26 / 3
Регистрация: 29.08.2010
Сообщений: 204
27.02.2012, 20:52 #8
Цитата Сообщение от Викулька Посмотреть сообщение
Двумерный массив
Получить матрицу:

1 0 … 0 1
0 1 … 1 0
. . … . .
0 1 … 1 0
1 0 … 0 1

У меня не че не получается, помогите парни...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
 
 
int main() {
 
    int mas[5][5] = { 0 };
 
 
    for(int i = 0; i < 5; i++) {
        mas[i][i] = 1;
        mas[i][5-1-i] = 1;
    }
    
    for(int i = 0; i < 5; i++) {
        for(int j = 0; j < 5; j++)
            cout << mas[i][j] << " ";
        cout << endl;
    }
 
    return 0;
}
Добавлено через 1 минуту
soon, ой простите, не увидел Вашу реализацию)
1
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
27.02.2012, 20:56 #9
HardMorg, захотите вдруг размерность изменить - сразу в 6-и местах менять придется.

Deryck, индексация идет с нуля до size, где size - размер массива. А у вас при n = 10 будет выход за границы, это может закончится сигфолтом. Да даже если и не закончится(а gcc позволяет выходить за границы +2 элемента, если ничего не путаю), то так делать не стоит.

Добавлено через 43 секунды
Цитата Сообщение от HardMorg Посмотреть сообщение
soon, ой простите, не увидел Вашу реализацию)
Пфф. Ерунда
1
Викулька
0 / 0 / 0
Регистрация: 09.06.2011
Сообщений: 33
27.02.2012, 21:00  [ТС] #10
все я разобралась спасибо***
0
27.02.2012, 21:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2012, 21:00
Привет! Вот еще темы с ответами:

Сформировать квадратную матрицу порядка n по заданному образцу - C++
1∙2 0 0 … 0 0 0 0 2∙3 0 … 0 0 0 0 0 3∙4 … 0 0 0 ...

Сформировать квадратную матрицу порядка n по заданному образцу на с++ - C++
вот на паскале написал. Const nmax=20; Var A:array of integer; i,j,n:byte; Begin Repeat write('vvedite N='); ...

Сформировать квадратную матрицу порядка n по заданному образцу - C++
1 1 1 … 1 1 1 2 2 2 … 2 2 0 3 3 3 … 3 0 0 ………………………….. n-1 n-1 0 …...

Сформировать квадратную матрицу порядка n по заданному образцу - C++
Сформировать квадратную матрицу порядка n по заданному образцу. Добавлено через 5 минут 1 1 1 ... 1 1 1 1 0 0 ... 0 0 1 1...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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