С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
0 / 0 / 0
Регистрация: 11.11.2019
Сообщений: 29

Записать данные массива в вектор

14.12.2019, 02:33. Показов 5234. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Составить алгоритм и программу, которая выполняет соответствующую обработку
двумерного массива и реализует указанные действия. Вектор - это одномерный массив.
Дан массив целых чисел A (K, К). Сформировать вектор D (К), в который записать значения элементов главной диагонали массива.
И вот вопрос, векторы мы еще не начинали изучать, о каких векторах идет тогда речь? Мне говорят просто обозвать что-то вектором и туда записать данные из диагонали? Вроде как не использовать #include <vector> и все что этого касается...
Незнаю как быть. Попытался сделать всё-таки через вектор, вроде бы получилось только вектор записывает данные не диагонали а первого столбца, исправьте пожалуйста) . Вот код. И если можете обьясните что от меня хотят если сами по себе vector не юзать? Как я правильно понял, я сделал все без векторов, а потом добавил его и заполнил числами из главной диагонали, только что-то не пашет
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <iostream>
#include <ctime>
#include <vector>
 
using namespace std;
 
int** arr(int K);
void Rand(int** A, int K);
void Sort(int** A, int K);
 
int main()
{
    setlocale(LC_ALL, "rus");
    srand(time(NULL));
    int K;
    cout << "Введите размер массива" << endl;
    cin >> K;
 
    int** A;
    A = arr(K);
    Rand(A, K);
    Sort(A, K);
 
    vector<int> D;
 
    for (int i = 0; i < K; i++)
    {
        delete[]A[i];
    }
    delete[]A;
 
 
}
 
 
int** arr(int K)
{
    int** A = new int* [K];
    for (int i = 0; i < K; i++)
    {
        A[i] = new int[K];
    }
    return A;
 
}
 
void Rand(int** A, int K)
{
    for (int i = 0; i < K; i++)
    {
        for (int j = 0; j < K; j++)
        {
            A[i][j] = rand() % (24 + 1) - 12;
            cout << A[i][j] << " ";
 
        }
        cout << endl;
    }
 
 
}
 
void Sort(int** A, int K)
{
    for (int i = 0; i < K; i++)
    {
        for (int j = 0; j < K; j++)
        {
            if (i == j)
            {
                vector<int> D;
                D.push_back(A[i][j]);
            
            }
            
 
        }
        
    }
    cout << endl;
    cout << "Vector: ";
    for (int i = 0; i < K; i++)
    {
        cout << *A[i] << " ";
    }
 
}
Добавлено через 3 минуты
if (i == j)
Это вектор вообще игнорирует

Добавлено через 8 минут
if (i == j)
{
vector<int> D;
D.push_back(A[i][j]);
cout << endl;
cout << *A[i] << " ";
И даже если так, тоже самое

Добавлено через 19 минут
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
70
71
72
73
74
75
76
77
#include <iostream>
#include <ctime>
using namespace std;
 
int** arr(int K);
void Rand(int** A, int K);
void Sort(int** A, int K);
 
int main()
{
    setlocale(LC_ALL, "rus");
    srand(time(NULL));
    int K;
    cout << "Введите размер массива" << endl;
    cin >> K;
 
    int** A;
    A = arr(K);
    Rand(A, K);
    Sort(A, K);
 
    
 
    for (int i = 0; i < K; i++)
    {
        delete[]A[i];
    }
    delete[]A;
 
 
}
 
 
int** arr(int K)
{
    int** A = new int* [K];
    for (int i = 0; i < K; i++)
    {
        A[i] = new int[K];
    }
    return A;
 
}
 
void Rand(int** A, int K)
{
    for (int i = 0; i < K; i++)
    {
        for (int j = 0; j < K; j++)
        {
            A[i][j] = rand() % (24 + 1) - 12;
            cout << A[i][j] << " ";
 
        }
        cout << endl;
    }
 
 
}
 
void Sort(int** A, int K)
{
    int D = 0;
    for (int i = 0; i < K; i++)
    {
        for (int j = 0; j < K; j++)
        {
            if (i == j)
            {
                D = A[i][j];
                cout << "Вектор главной диагонали" << D << endl;
            }
        }
    }
    
    
}

Вот вроде бы получилось, только выводит из-за циклов много раз "Вектор главной диагонали" Как это убрать? Если поставить cout << "Вектор главной диагонали" << D << endl; за циклами, то оно не выведет D
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.12.2019, 02:33
Ответы с готовыми решениями:

Записать из файлов данные о людях (ф.и.о. , дата рожд) в вектор
Всем халоу, тут такая задачка: надо из двух файлов с разными данными о людях (1 файл - уникальный код, ф.и.о. , дата рожд, номер тел; 2...

Считать данные из файла и записать в вектор (запись происходит неправильно)
есть функция которая читывает с файла и записывает в вектор, но при записывание в в ектор чысла записываються как мусор void...

Как записать в массив данные из *.TXT и и правильно рассортировать данные по ячейкам массива?
файл index.php &lt;?php $site = (file('text.txt')); в файле text.txt находится: xxxxxx.ru xxxxx.com xxxx.org xxxx.ru...

1
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
14.12.2019, 03:54
Лучший ответ Сообщение было отмечено basddff как решение

Решение

basddff, вектором иногда называют массив (но лучше уточните - если нужен именно вектор используйте второй код)
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
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
using namespace std;
 
int main()
{
    srand((int)time(0));
    int K;
    cout << "K="; cin >> K;
    
      int **A = new int*[K];
    for (int i = 0; i < K; i++)
        A[i]=new int[K];
        
        int*D = new int[K];         
         
    cout << "Array A:\n";
    for (int i = 0; i < K; i++)
    {
        for (int j = 0; j < K; j++)
        {
            A[i][j]=rand()%25 - 12;
            if (i==j) D[i]=A[i][j];
            cout << setw(3) << A[i][j] << " "; 
        }
        cout << "\n";
    }
    
    cout << "Vector D:\n";
    for (int i = 0; i < K; i++)       
        cout << setw(3) << D[i] << " ";        
    cout << "\n";
    
    for (int i = 0; i < K; i++)
    delete[]A[i];
    delete[]A;
    delete[]D;
system("pause");
return 0;
}
вариант с вектором
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
#include <iostream>
#include <iomanip>
#include <vector>
#include <cstdlib>
#include <ctime>
using namespace std;
 
int main()
{
    srand((int)time(0));
    int K;
    cout << "K="; cin >> K;
    
      int **A = new int*[K];
    for (int i = 0; i < K; i++)
        A[i]=new int[K];
        
        vector<int> D;         
         
    cout << "Array A:\n";
    for (int i = 0; i < K; i++)
    {
        for (int j = 0; j < K; j++)
        {
            A[i][j]=rand()%25 - 12;
            if (i==j) D.push_back(A[i][j]);
            cout << setw(3) << A[i][j] << " "; 
        }
        cout << "\n";
    }
    
    cout << "Vector D:\n";
    for (int i = 0; i < K; i++)       
        cout << setw(3) << D[i] << " ";        
    cout << "\n";
    
    for (int i = 0; i < K; i++)
    delete[]A[i];
    delete[]A;    
system("pause");
return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.12.2019, 03:54
Помогаю со студенческими работами здесь

Массив: Записать вектор Z, элементы которого являются суммой элементов, равноудалённых от концов массива X
Итак, само задание звучит так &quot;Дан ряд чисел Ak(k=1,2, ... 10). Записать вектор z, каждая компонента которого определяется как сумма...

Сформировать вектор, в который записать номера строк, в которых все элементы массива одинаковы.
Дан двумерный массив A размера m*n. Сформировать вектор В, в который записать номера строк , в которых все элементы одинаковы. Если можно...

Преобразовать матрицу и записать ее вектор ,а вектор вывести
У нас есть булева переменная, если она равна = 1 то матрицу мы записываем в вектор(masiv) по строкам, если равна = 0 по столбцам, а вектор...

Считать вектор из файла, записать вектор в файл
Доброго времени суток. Программа должна считывать числа из заданного файла, потом записывать в другой файл вектор, в котором каждый элемент...

Записать данные из массива в List
Товарищи подскажите как значения массива, который определен в классе Pets записать, записать в List. Закоментированный код не работает. ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru