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

Массив nxn. Нечетные строки таблицы заменить на вектор Х - C++

Восстановить пароль Регистрация
 
b0nny
3 / 1 / 0
Регистрация: 11.11.2013
Сообщений: 338
11.04.2014, 20:18     Массив nxn. Нечетные строки таблицы заменить на вектор Х #1
Дан массив размером n×n, элементы которого целые числа. Нечетные строки таблицы заменить на вектор Х.
Замечание. Для хранения массив n×n использовать ступенчатый массив.
Помогите с кодом.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2014, 20:18     Массив nxn. Нечетные строки таблицы заменить на вектор Х
Посмотрите здесь:

Двумерный массив. Поменять четные и нечетные строки. C++
C++ В прямоугольной матрице A(m,n) заменить нечетные строки вектором B(n)
C++ Массив: считать строки в вектор
C++ Дана действительная матрица А(N*M) и массив В(N).Заменить четные столбцы матрицы на вектор B.
C++ Нечетные строки матрицы заменить на заданный одномерный массив
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TenGen
Будущее рядом
 Аватар для TenGen
96 / 94 / 20
Регистрация: 06.03.2014
Сообщений: 342
11.04.2014, 20:23     Массив nxn. Нечетные строки таблицы заменить на вектор Х #2
b0nny,
C++
1
2
3
for (int i = 0; i< n; i+=2)
for (int j = 0; j < m; j++)
a[i][j] = x[j];
это действует для массива int a[n][m]; int x[m];
заполнение массива и вектора и вывод сами, думаю, дооформите
b0nny
3 / 1 / 0
Регистрация: 11.11.2013
Сообщений: 338
13.04.2014, 15:49  [ТС]     Массив nxn. Нечетные строки таблицы заменить на вектор Х #3
Эм... Пока завис.
Сделал ступенчатую матрицу и одномерный массив x
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include<iostream>
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
 
using namespace std;
 
main()
{
    int n,i,j,k;
    printf("n="); scanf("%d",&n);
    int a[n][n];
    int x[n];
    srand((unsigned)time(NULL));
  printf("ÑòóïåГ*Г·Г*ГІГ*Гї Г¬Г*òðèöГ*:");
  printf("\n");
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        {
            a[i][j]=rand()%21-10;
        }
    }
    for (i=0; i<=3; i++)
    {
        for (j=0; j<i; j++)
        {
            a[i][j]=0;
        }
    }
    for (i=0; i<=2; i++)
    {
        for (j=0; j<=2; j++)
        {
            printf("%3d ", a[i][j]);
        }
        printf("\n");
    }
    
    printf("\n");
    printf("Âåêòîð x:");
    printf("\n");
    for (int k=0; k<n; k++)
    {
        x[k]=rand()%21-15;
        printf("%3d ", x[k]);
    }
    
    printf("\n");
    system("pause");
    return 0;
}
Плюс на данном этапе возник вопрос. Почему-то я меняю n, а у меня матрица не хочет быть более большего размера чем 3 да и менее, а вот массив x меняется.

Добавлено через 31 минуту
Эм прозевал в цикле размер...

Добавлено через 44 минуты
В итоге:
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include<iostream>
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
 
using namespace std;
 
main()
{
    int n,i,j,k;
    printf("n="); scanf("%d",&n);
    int a[n][n];
    int x[n];
    srand((unsigned)time(NULL));
  printf("Ступенчатая матрица:");
  printf("\n");
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        {
            a[i][j]=rand()%21-10;
        }
    }
    for (i=0; i<=n; i++)
    {
        for (j=0; j<i; j++)
        {
            a[i][j]=0;
        }
    }
    for (i=0; i<n; i++)
    {
        for (j=0; j<n; j++)
        {
            printf("%3d ", a[i][j]);
        }
        printf("\n");
    }
    
    printf("\n");
    printf("Вектор x:");
    printf("\n");
    for (int k=0; k<n; k++)
    {
        x[k]=rand()%21-15;
        printf("%3d ", x[k]);
    }
    
    printf("\n\n");
    printf("Измённый массив:");
    printf("\n");
    for(int i=0; i<n; i++)
  {
        for (int i=0; i<n; i+=2)
        {
            for (int j=0; j<n; j++)
            {
                a[i][j] = x[j];
            }
        }
    for(int j=0; j<n; j++)
    {
      printf("%3d ", a[i][j]);
        }
    std::cout << std::endl;
  }
    system("pause");
    return 0;
}
TenGen
Будущее рядом
 Аватар для TenGen
96 / 94 / 20
Регистрация: 06.03.2014
Сообщений: 342
13.04.2014, 19:43     Массив nxn. Нечетные строки таблицы заменить на вектор Х #4
b0nny, если все работает так как нужно, то хорошо)
Yandex
Объявления
13.04.2014, 19:43     Массив nxn. Нечетные строки таблицы заменить на вектор Х
Ответ Создать тему
Опции темы

Текущее время: 17:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru