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

Создать одномерный массив, содержащий индексы элементов матрицы, меньших числа, введенного с клавиатуры - C++

Восстановить пароль Регистрация
 
SashaV21
0 / 0 / 0
Регистрация: 10.05.2010
Сообщений: 27
10.05.2010, 16:44     Создать одномерный массив, содержащий индексы элементов матрицы, меньших числа, введенного с клавиатуры #1
Помогите решить задачки
1.Дан одномерный массив, состоящий из 17 вещественных чисел. Создать другой массив, содержащий элементы исходного массива в порядке их следования, пока их сумма не превысит число, введенное с клавиатуры.
2.Дана матрица 6х8 целого типа. Создать одномерный массив, содержащий индексы элементов матрицы, меньших числа, введенного с клавиатуры.
3.Дана матрица 6х8. Сформировать одномерный массив из элементов матрицы, образующих упорядоченные по возрастанию фрагменты.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2010, 16:44     Создать одномерный массив, содержащий индексы элементов матрицы, меньших числа, введенного с клавиатуры
Посмотрите здесь:

Создать одномерный массив, содержащий индексы элементов матрицы C++
Рандомное заполнение матрицы, причем от числа до числа, введенного с клавиатуры C++
Создать массив из индексов элементов матрицы, меньших заданного числа C++
C++ Удалить все элементы массива с четными индексами
Создать новый одномерный массив, состоящий из произведений элементов матрицы А(6,4) по столбцам C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,694
10.05.2010, 17:16     Создать одномерный массив, содержащий индексы элементов матрицы, меньших числа, введенного с клавиатуры #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
#include <ctime>
#include <iomanip>
 
int main()
{
    const int size=17;
    int MAS[size];
 
    srand(time(NULL));
    std::cout << "Start matrix:\n";
    for (int i=0; i<size; i++) { // заполнеие и вывод массива.
        MAS[i]=rand()%20+1;
        std::cout << std::setw(3) << MAS[i]; }
    std::cout << std::endl;
 
    std::cout << "Input number: ";
    int num; std::cin >> num;
    int count=0;
 
    for (int i=0; ; i++) { // считаем размер нового массива.
        num-=MAS[i];
        if (num>0) count++;
        else break; }
 
    int *MAS_two=new int [count];
    for (int i=0; i<count; i++) // записываем элементы в новый массив.
        MAS_two[i]=MAS[i];
 
    std::cout << "New matrix:\n";
    for (int i=0; i<count; i++)
        std::cout << std::setw(3) << MAS_two[i];
 
    delete []MAS_two;
    return 0;
}
Добавлено через 4 минуты
На счет второй:
В двумерном массиве у каждого элемента две индекса. И какой из них записывать в новый одномерный массив?
SashaV21
0 / 0 / 0
Регистрация: 10.05.2010
Сообщений: 27
10.05.2010, 17:29  [ТС]     Создать одномерный массив, содержащий индексы элементов матрицы, меньших числа, введенного с клавиатуры #3
Спасибо большое за решение)
На счет второй не знаю((
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,694
10.05.2010, 17:32     Создать одномерный массив, содержащий индексы элементов матрицы, меньших числа, введенного с клавиатуры #4
Ну вот, я тоже не знаю.
Посмотрим что скажут другие форумчане =)
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
10.05.2010, 18:17     Создать одномерный массив, содержащий индексы элементов матрицы, меньших числа, введенного с клавиатуры #5
Цитата Сообщение от SashaV21 Посмотреть сообщение
2.Дана матрица 6х8 целого типа. Создать одномерный массив, содержащий индексы элементов матрицы, меньших числа, введенного с клавиатуры.
Здесь скорее всего имеется ввиду такая индексация:
Например:
элемент [0][0] имеет индекс = 0
элемент [0][2] имеет индекс = 2
элемент [0][7] имеет индекс = 7
элемент [1][0] имеет индекс = 8
элемент [1][1] имеет индекс = 9
элемент [2][3] имеет индекс = 19
т.е. индекс вычисляется по формуле: номер строки * 8(кол-во столбцов массива) + номер столбца.
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,694
10.05.2010, 18:22     Создать одномерный массив, содержащий индексы элементов матрицы, меньших числа, введенного с клавиатуры #6
valeriikozlov, а в чем логика?)
Или просто есть такой алгоритм?
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
10.05.2010, 18:30     Создать одномерный массив, содержащий индексы элементов матрицы, меньших числа, введенного с клавиатуры #7
Логика проста. На самом деле двумерных массивов не существует в машинах. Их придумали сами люди, т.к. они удобны для решения многих задач. Создавая двумерный массив, на самом деле просто выделяется участок памяти (такой же как и под одномерный массив). Можно обратиться например к элементу массива так: mas[2][3], то же самое будет если написать *(mas+19)
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,694
10.05.2010, 18:48     Создать одномерный массив, содержащий индексы элементов матрицы, меньших числа, введенного с клавиатуры #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
valeriikozlov, я понял)
Тогда можно такой вариант:
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
#include <iostream>
#include <ctime>
#include <iomanip>
#include <vector.h>
 
int main()
{
    const int Row=6;
    const int Column=8;
    int MAS[Row][Column];
 
    srand(time(NULL));
    std::cout << "Start matrix:\n";
    for (int i=0; i<Row; i++)  // заполняем случайными числами и выводим на экран.
    {
        for (int j=0; j<Column; j++) {
            MAS[i][j]=rand()%20+1;
            std::cout << std::setw(3) << MAS[i][j]; }
    std::cout << std::endl; }
 
    std::cout << "Input number: ";
    int num; std::cin >> num;
    int count=0;
 
    for (int i=0; i<Row; i++) // считаем кол-во элементов,
    for (int j=0; j<Column; j++) // больших заданного числа.
        if (MAS[i][j]<num) count++;
 
    vector <int> v;
    for (int i=0; i<Row; i++)
    for (int j=0; j<Column; j++)
        if (MAS[i][j]<num) v.push_back(i*8+j);
 
    std::cout << "Finish matrix:\n";
    vector<int>::iterator i;
    for (i=v.begin(); i!=v.end(); i++)
        std::cout << std::setw(3) << *i+1;
 
    std::cout << std::endl;
    return 0;
}
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
10.05.2010, 18:54     Создать одномерный массив, содержащий индексы элементов матрицы, меньших числа, введенного с клавиатуры #9
отличный вариант!
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,694
10.05.2010, 18:57     Создать одномерный массив, содержащий индексы элементов матрицы, меньших числа, введенного с клавиатуры #10
Это сарказм, да?)
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
10.05.2010, 19:02     Создать одномерный массив, содержащий индексы элементов матрицы, меньших числа, введенного с клавиатуры #11
Нет, не сарказм. Не проверял сам код, просто просмотрел. Должен выдавать правильный результат!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.05.2010, 12:12     Создать одномерный массив, содержащий индексы элементов матрицы, меньших числа, введенного с клавиатуры
Еще ссылки по теме:

C++ Сформировать одномерный массив, содержащий количество нулевых элементов каждой строки матрицы
Создать одномерный массив из сумм положительных элементов каждого столбца матрицы C++
Создать одномерный массив из сумм положительных элементов каждого столбца матрицы C++

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

Или воспользуйтесь поиском по форуму:
SashaV21
0 / 0 / 0
Регистрация: 10.05.2010
Сообщений: 27
11.05.2010, 12:12  [ТС]     Создать одномерный массив, содержащий индексы элементов матрицы, меньших числа, введенного с клавиатуры #12
А 3 кто нибудь знает как решить??
Yandex
Объявления
11.05.2010, 12:12     Создать одномерный массив, содержащий индексы элементов матрицы, меньших числа, введенного с клавиатуры
Ответ Создать тему
Опции темы

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