Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
1 / 1 / 0
Регистрация: 24.12.2017
Сообщений: 3

Из двумерного массива формировать два одномерных

24.12.2017, 13:16. Показов 1836. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сам текст задачи:
Дана целочисленная квадратная матрица размером n*m. Написать программу, формирующую два одномерных массива. В один переслать по строкам верхний треугольник матрицы, включая элементы главной диагонали, в другой – нижний треугольник. Полученные массивы распечатать.
Вот код, который я написал:

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
#include <iostream>         
#include <math.h>                                                       
 
using namespace std;                            
 
int main()                                          
{
    int m, n, i, j, r;
    cout << endl <<"\n Insert size of massive " << endl;     // Ввод размера основного массива
    cin >> r;
    n=r;
    m=r;
    int A[n][m];                                   // Объявление основного массива
    cout << endl <<"\n Insert your massive " << endl;       // Ввод размера основного массива
    for(i=0; i<n; i++) {
     for(j=0; j<m; j++) {
      cin >> A[i][j]; }}
    cout << endl <<"\n Your massive: " << endl;    // Вывод основного массива
    for(i=0; i<n; i++) {
     for(j=0; j<m; j++) {
      cout << A[i][j] <<" "; }
      cout << endl; }
    r=0;
    for(i=0; i<n; i++) {                     // Цикл для подсчёта элементов в верхнем треугольнике массива
     for(j=0; j<m; j++) {
      if (j<i) {j++;}
      r++;
     }
     }
    int F[r];                                  // Объявление первого одномерного массива
    r=0;
    for(i=0; i<n; i++) {                      // Заполнение первого одномерного массива
     for(j=0; j<m; j++) {
      while (j<i) {j++;}
      F[r]=A[i][j];
      r++;
     }
    }
    cout << endl <<"\n First massive: " << endl;    // Вывод первого одномерного массива
    for (r=0; r<(m*n); r++) {
      cout << F[r] << " ";
    }
    r=0;
    for(i=0; i<n; i++) {                     // Цикл для подсчёта элементов в нижнем треугольнике массива
     for(j=0; j<m; j++) {
      if (j<i) {continue;}
      r++;
     }
     }
    int S[r];                                  // Объявление второго одномерного массива
    r=0;
    for(i=0; i<n; i++) {                      // Заполнение второго одномерного массива
     for(j=0; j<m; j++) {
      if (j>=i) {continue;}
      S[r]=A[i][j];
      r++;
     }
    }
    cout << endl <<"\n Second massive: " << endl;    // Вывод второго одномерного массива
    for (r=0; r<(m*n); r++) {
      cout << S[r] << " ";
    }
    system ("pause");
}
При выполнении во время вывода одномерных массивов программа выводит после нужных элементов изначального массива какие-то дополнительные числа. Думал, что дело в том, что изначально я объявлял слишком большие одномерные массивы (m*n) и прописал циклы для подсчёта количества элементов двумерного массива, которые пойдут в одномерный, и потом уже от этого числа объявляю одномерный. Но программа продолжает выводить несуществующие числа. В чём проблема?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.12.2017, 13:16
Ответы с готовыми решениями:

Сформировать два одномерных массива из двумерного!
Подскажите как сформировать в (Borland) С++ два одномерных массива из двумерного K, что бы в первый массив вошла сумма елементов строк (...

Из двумерного массива сформировать два одномерных
Дан массив х (n,m). Сформировать два одномерных массива: один состоящий из положительных элементов исходного массива, лежащих над главной...

Из двумерного массива сформировать два одномерных
Дан массив R(N,M). Сформировать массив B(N) из максимальных по абсолютной величине элементов строк массива R,массив A(M) из минимальных...

3
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
24.12.2017, 15:39
Цитата Сообщение от Nfikf Посмотреть сообщение
Дана целочисленная квадратная матрица размером n*m.
у целочисленной квадратной матрицы не должен быть размер n*n ?
0
Модератор
Эксперт С++
 Аватар для zss
13771 / 10964 / 6491
Регистрация: 18.12.2011
Сообщений: 29,241
24.12.2017, 15:48
r - количество элементов в новом массиве, не используйте ее в качестве индекса:
Цитата Сообщение от Nfikf Посмотреть сообщение
for (r=0; r<(m*n); r++) {
C++
1
for (i=0; i<r; i++) {
0
1 / 1 / 0
Регистрация: 24.12.2017
Сообщений: 3
24.12.2017, 16:04  [ТС]
Блин, действительно. Лоханулся когда дописывал циклы для подсчёта элементов, спасибо.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.12.2017, 16:04
Помогаю со студенческими работами здесь

Как из двумерного массива получить два одномерных
Есть int w = new int; Как получить два одномерных что бы в одном было значение 3 а, в другом 5?

Образовать два одномерных массива путем перезаписи в них элементов из заданного двумерного массива
Образовать два одномерных массива путем перезаписи в них элементов из заданного целочисленного двумерного массива размером n*n, при этом в...

Даны два одномерных массива разной размерности. Для каждого из заданных одномерных массивов выполнить: из
Даны два одномерных массива разной размерности. Для каждого из заданных одномерных массивов выполнить: из заданного одномерного массива...

Как вывести два одномерных массива рядом в два столбца
2333

Даны два одномерных массива целых чисел. Сформировать из них два новых по правилу
Помогите пожалуйста с задачей:help: :) Даны два одномерных массива целых чисел (массив А, состоящий из n элементов, массив В – из m...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru