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

Переписать первые элементы каждой строки матрицы D(3,3), которые больше 10, в массив В - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
рiece something
 Аватар для рiece something
1 / 1 / 0
Регистрация: 10.02.2011
Сообщений: 59
03.06.2011, 13:52     Переписать первые элементы каждой строки матрицы D(3,3), которые больше 10, в массив В #1
Переписать первые элементы каждой строки матрицы D(3,3), которые больше 10, в массив В.
Выполнить с использованием указателей и без.

Получилось только матрицу вывести. И то при каждом новом запуске выдает одни и те же значения.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream.h>
#include <iomanip.h>
#include <stdlib.h>
void main()
{
    const int w=3, l=3;
    int i, j, a[w][l];
    cout << "Matriza: " << endl;
    for (i=0; i<w; i++)
    {
    for (j=0; j<l; j++)
    {
        a[i][j]=rand()%50;
        cout << setw(3) << a[i][j];
    }
    cout << endl;
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2011, 13:52     Переписать первые элементы каждой строки матрицы D(3,3), которые больше 10, в массив В
Посмотрите здесь:

Переписать первые элементы каждой строки матрицы D(3,3), которые больше 10, в массив В. C++
C++ Динамические массивы. Найти наибольшие элементы каждой строки матрицы Х и записать их в массив Y
C++ дописать ( Из массива А удалить все элементы, которые встречаются в В ровно 2 раза. Из В переписать в С те элементы, которые совпадают с оставшимися)
Определить, что все элементы строки первой матрицы больше соответствующих элементов строки второй матрицы C++
Сформировать массив С, в который войдут минимальные элементы каждой строки матрицы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mиxaил
 Аватар для Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
03.06.2011, 14:31     Переписать первые элементы каждой строки матрицы D(3,3), которые больше 10, в массив В #2
подключите
C++
1
#include <ctime>
пропишите в начале кода
C++
1
srand ( time ( 0 ) );
теперь можно использовать rand()
рiece something
 Аватар для рiece something
1 / 1 / 0
Регистрация: 10.02.2011
Сообщений: 59
03.06.2011, 15:03  [ТС]     Переписать первые элементы каждой строки матрицы D(3,3), которые больше 10, в массив В #3
Mиxaил, спс. помогло.
рiece something
 Аватар для рiece something
1 / 1 / 0
Регистрация: 10.02.2011
Сообщений: 59
06.06.2011, 15:29  [ТС]     Переписать первые элементы каждой строки матрицы D(3,3), которые больше 10, в массив В #4
Смогла родить только это:
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
#include <iostream.h>
#include <iomanip.h>
#include <stdlib.h>
#include <time.h>
 
void main()
{
    const int w=3, l=3;
    int i, j, a[w][l];
    srand ( time ( 0 ) );
    cout << "Matriza: " << endl;
    for (i=0; i<w; i++)
    {
    for (j=0; j<l; j++)
    {
        a[i][j]=rand()%50;
        cout << setw(3) << a[i][j];
    }
    cout << endl;
    }
    int n, b[3];
    for (j=0; j<3; j++)
    {
        for (i=1; i<3;i++)
        {
            if (i>=10) i = n;
            else cout << "Elementi ne naideni!" << endl;
        }
        cout << b[n] << endl;
    }
}
но, разумеется, ничего не получается. Подозреваю, что проблема здесь:
for (j=0; j<3; j++)
{
for (i=1; i<3;i++)
но не пойму, как ее решить.
Nursik77
 Аватар для Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
06.06.2011, 16:19     Переписать первые элементы каждой строки матрицы D(3,3), которые больше 10, в массив В #5
C
1
2
3
for (j=0; j<3; j++)
 {
 for (i=1; i<3;i++)
А должно быть:
C
1
2
3
for (j=0; j<3; j++)
 {
 for (i=0; i<3;i++)
рiece something
 Аватар для рiece something
1 / 1 / 0
Регистрация: 10.02.2011
Сообщений: 59
06.06.2011, 16:43  [ТС]     Переписать первые элементы каждой строки матрицы D(3,3), которые больше 10, в массив В #6
Цитата Сообщение от Nursik77 Посмотреть сообщение
А должно быть:
нет. не должно.
Nursik77
 Аватар для Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
06.06.2011, 16:51     Переписать первые элементы каждой строки матрицы D(3,3), которые больше 10, в массив В #7
Ну я так бегло позырил, подумал может быть вы ошиблись
dihlofos
Бродяга
 Аватар для dihlofos
302 / 256 / 17
Регистрация: 27.08.2010
Сообщений: 553
06.06.2011, 17:00     Переписать первые элементы каждой строки матрицы D(3,3), которые больше 10, в массив В #8
Цитата Сообщение от рiece something Посмотреть сообщение
Переписать первые элементы каждой строки матрицы D(3,3), которые больше 10, в массив В.
C++
1
2
3
4
5
6
7
8
9
j = 0;
for (i = 0; i < w; ++i)
{
    if (a[i][0] > 10)
    {
        b[j] = a[i][0];
        ++j;
    }
}
рiece something
 Аватар для рiece something
1 / 1 / 0
Регистрация: 10.02.2011
Сообщений: 59
06.06.2011, 17:44  [ТС]     Переписать первые элементы каждой строки матрицы D(3,3), которые больше 10, в массив В #9
dihlofos, спасибо. немного подправила и заработало.
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
#include <iostream.h>
#include <iomanip.h>
#include <stdlib.h>
#include <time.h>
 
void main()
{
    const int w=3, l=3;
    int i, j, a[w][l];
    srand ( time ( 0 ) );
    cout << "Matriza: " << endl;
    for (i=0; i<w; i++)
    {
    for (j=0; j<l; j++)
    {
        a[i][j]=rand()%50;
        cout << setw(3) << a[i][j];
    }
    cout << endl;
    }
    const int n = 3;
    int b[n]; 
    
    for (i=0; i<n;i++)
        {
            if (a[i][0]>=10) b[n] = a[i][0];
        
            cout << b[j] << endl;
    }
}
Единственно, когда в столбце число меньше 10, в массиве b все равно три числа (повторяет предыдущее).

Но если я не объявляю константу, выдает ошибку.
Миниатюры
Переписать первые элементы каждой строки матрицы D(3,3), которые больше 10, в массив В  
dihlofos
Бродяга
 Аватар для dihlofos
302 / 256 / 17
Регистрация: 27.08.2010
Сообщений: 553
06.06.2011, 18:13     Переписать первые элементы каждой строки матрицы D(3,3), которые больше 10, в массив В #10
рiece something, хм... я только понять не могу, зачем вы так сделали:

C++
1
2
3
4
5
for (i=0; i<n;i++)
{
   if (a[i][0]>=10) b[n] = a[i][0];
      cout << b[j] << endl;
}
Тут же выход за пределы массива b, т.к. n и j равны 3.
Переменные n и j в цикле вообще не меняются, т.е. по идее каждый раз будет писаться в один и тот же элемент b[3] (вернее в область, которая за пределами массива), ну и тут же выводиться на экране. Короче говоря, никакой массив b у вас не заполняется))
рiece something
 Аватар для рiece something
1 / 1 / 0
Регистрация: 10.02.2011
Сообщений: 59
06.06.2011, 18:28  [ТС]     Переписать первые элементы каждой строки матрицы D(3,3), которые больше 10, в массив В #11
dihlofos, я сделала, как у вас, но мне выдало 4 ошибки((
dihlofos
Бродяга
 Аватар для dihlofos
302 / 256 / 17
Регистрация: 27.08.2010
Сообщений: 553
06.06.2011, 18:37     Переписать первые элементы каждой строки матрицы D(3,3), которые больше 10, в массив В #12
Цитата Сообщение от рiece something Посмотреть сообщение
я сделала, как у вас, но мне выдало 4 ошибки
Странно, а какие? Вот код полностью:
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()
{
    const int rows = 3, cols = 3;
    int i, j, a[rows][cols];
    srand (time(0));
    
    cout << "Matriza: " << endl;
    for (i = 0; i < rows; ++i)
    {
        for (j = 0; j < cols; ++j)
        {
            a[i][j] = rand() % 50;
            cout << setw(3) << a[i][j];
        }
        cout << endl;
    }
    
    int b[rows]; 
        
    j = 0;
    for (i = 0; i < rows; ++i)
    {
        if (a[i][0] > 10)
        {
            b[j] = a[i][0];
            ++j;
        }
    }
        
    for (i = 0; i < j; ++i)
    {
        cout << b[i] << endl;
    }
    
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2011, 12:54     Переписать первые элементы каждой строки матрицы D(3,3), которые больше 10, в массив В
Еще ссылки по теме:

C++ Определить, верно ли утверждение: сумма элементов каждой i-й строки матрицы больше суммы (i-1)-й строки
C++ Определить, верно ли утверждение: сумма элементов каждой i-ой строки матрицы больше суммы (i-1)-ой строки
C++ В массив С перенести те элементы А, которые меньше min(В), и те элементы B, которые больше max(A)

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

Или воспользуйтесь поиском по форуму:
рiece something
 Аватар для рiece something
1 / 1 / 0
Регистрация: 10.02.2011
Сообщений: 59
09.06.2011, 12:54  [ТС]     Переписать первые элементы каждой строки матрицы D(3,3), которые больше 10, в массив В #13
Хммм, а как выполнить это задание, используя функции?
Yandex
Объявления
09.06.2011, 12:54     Переписать первые элементы каждой строки матрицы D(3,3), которые больше 10, в массив В
Ответ Создать тему
Опции темы

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