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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
рiece something
1 / 1 / 0
Регистрация: 10.02.2011
Сообщений: 59
#1

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

03.06.2011, 13:52. Просмотров 1292. Ответов 12
Метки нет (Все метки)

Переписать первые элементы каждой строки матрицы 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, в массив В (C++):

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

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

Все элементы каждой строки заданной матрицы не равные нулю, переписать в начало строк, а остальные - в конец - C++
Помогите, пожалуйста, решить задачу. Заранее спасибо. Дан двумерный массив. В каждой строке все его элементы, не равные нулю,...

В массив С перенести те элементы А, которые меньше min(В), и те элементы B, которые больше max(A) - C++
Ввести массивы А и В. В массив С перенести те элементы массива А , которые меньше минимального элемента массива В , и те элементы массива В...

Сформировать массив С, в который войдут минимальные элементы каждой строки матрицы - C++
Дана матрица Z(7,3) (элементы ее выбрать самостоятельно). Сформировать массив С, в который войдут минимальные элементы каждой строки...

Динамические массивы. Найти наибольшие элементы каждой строки матрицы Х и записать их в массив Y - C++
Найти наибольшие элементы каждой строки матрицы Х и записать их в массив Y. Размер Марицы вводить с клавиатуры, а элементы разместить в...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
03.06.2011, 14:31 #2
подключите
C++
1
#include <ctime>
пропишите в начале кода
C++
1
srand ( time ( 0 ) );
теперь можно использовать rand()
рiece something
1 / 1 / 0
Регистрация: 10.02.2011
Сообщений: 59
03.06.2011, 15:03  [ТС] #3
Mиxaил, спс. помогло.
рiece something
1 / 1 / 0
Регистрация: 10.02.2011
Сообщений: 59
06.06.2011, 15:29  [ТС] #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
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
06.06.2011, 16:19 #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
1 / 1 / 0
Регистрация: 10.02.2011
Сообщений: 59
06.06.2011, 16:43  [ТС] #6
Цитата Сообщение от Nursik77 Посмотреть сообщение
А должно быть:
нет. не должно.
Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
06.06.2011, 16:51 #7
Ну я так бегло позырил, подумал может быть вы ошиблись
dihlofos
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
06.06.2011, 17:00 #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
1 / 1 / 0
Регистрация: 10.02.2011
Сообщений: 59
06.06.2011, 17:44  [ТС] #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
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
06.06.2011, 18:13 #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
1 / 1 / 0
Регистрация: 10.02.2011
Сообщений: 59
06.06.2011, 18:28  [ТС] #11
dihlofos, я сделала, как у вас, но мне выдало 4 ошибки((
dihlofos
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
06.06.2011, 18:37 #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;
}
рiece something
1 / 1 / 0
Регистрация: 10.02.2011
Сообщений: 59
09.06.2011, 12:54  [ТС] #13
Хммм, а как выполнить это задание, используя функции?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2011, 12:54
Привет! Вот еще темы с ответами:

Определить, что все элементы строки первой матрицы больше соответствующих элементов строки второй матрицы - C++
Помогите,пожалуйста,с решением массивов в с++.надо в статическом и динамическом варианте. Даны две целочисленные квадратные матрицы...

Определить, верно ли утверждение: сумма элементов каждой i-й строки матрицы больше суммы (i-1)-й строки - C++
Дана квадратная матрица натуральных чисел, (получаемая через rand()). Определить, верно ли утверждение: сумма элементов каждой i-й строки...

Определить, верно ли утверждение: сумма элементов каждой i-ой строки матрицы больше суммы (i-1)-ой строки - C++
1. Дана квадратная матрица натуральных чисел, (получаемая через rand()). Определить, верно ли утверждение: сумма элементов каждой i-й...

Переписать массив элементы матрицы - C++
Задана матрица A размерности n*m. Переписать в массив B элементы aii одной главной диагонали матрицы A, в массив C - элементы ai,n-i+1...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.06.2011, 12:54
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru