0 / 0 / 0
Регистрация: 06.11.2018
Сообщений: 74
1

Вместо рандома, сделать ввод количества строк, столбцов и элементов массива с клавиатуры

11.02.2019, 22:44. Показов 1807. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Изначально задание такое:
Уплотнить заданную матрицу, удалив из нее строки и столбцы, заполненные нулями.
Найти номер первой из строк, содержащих хотя бы один положительный элемент.

Но тут ввод рандомом. А нужно - Количество строк, столбцов и элементы массива вводятся с клавиатуры.

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
#include <iostream>
#include <stdlib.h>
#include <time.h>
#define N 5
 
int main()
{
    int a[N][N], n = N, m = N, k = -1;
    bool p = false;
    srand(time(0)%32767);
    std::cout<<"\nMatrix: \n\n";
 
    for(int i = 0; i < n; i++)
        for(int j = 0; j < n; j++){
            a[i][j] = rand()%2;
            if(k == -1 && a[i][j] > 0)
                k = i;}
 
    for(int i = 0; i < n; i++){
        for(int j = 0; j < m; j++)
            std::cout<<a[i][j]<<" ";
        std::cout<<"\n";}
    
    //Удаляем лишние строки
    for(int i = 0; i < n; i++){
        p = true;
        for(int j = 0; j < m; j++)
            if(a[i][j] != 0){
                p = false;
                break;}
        if(p){
            for(int k = i; k < (n-1); k++)
                for(int j = 0; j < m; j++)
                    a[k][j] = a[k+1][j];
            --i;
            --n;}}
    
    //Удаляем лишние столбцы
    for(int j = 0; j < m; j++){
        p = true;
        for(int i = 0; i < n; i++)
            if(a[i][j] != 0){
                p = false;
                break;}
        if(p){
            for(int k = j; k < (m-1); k++)
                for(int i = 0; i < m; i++)
                    a[i][k] = a[i][k+1];
            --j;
            --m;}}
    
    //Выводим матрицу
    std::cout<<"\nAfter convertion:\n";
    for(int i = 0; i < n; i++){
        for(int j = 0; j < m; j++)
            std::cout<<a[i][j]<<" ";
        std::cout<<"\n";}
        
    //Номер строки, содержащей первый пол-ый эл.
    std::cout<<"\nIndex: "<<k<<"\n";
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.02.2019, 22:44
Ответы с готовыми решениями:

Как сделать ввод элементов массива с клавиатуры?
Всем привет. Препод пристал что бы я сделал так что пользователь задавал значение элементов с...

Доделать ввод массива с клавиатуры (вместо жестко заданного в коде)
Помогите переделать в ней ввод массива с клавиатуры, вместо того что он задан. #include...

Задание пользователем количества строк и столбцов двумерного массива и ввод элементов с клавиатуры
Здравствуйте! С# начал совсем недавно изучать. Суть задания в том, чтобы пользователь во-первых...

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

3
215 / 162 / 52
Регистрация: 09.12.2017
Сообщений: 520
11.02.2019, 22:53 2
Пример ввода двумерного динамического массива с клавиатуры и его вывода :
Кликните здесь для просмотра всего текста
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>
using namespace std;
 
int main()
{
    int n; cout << " Enter n = "; cin >> n;
    int m; cout << " Enter m = "; cin >> m;
    double **arr = new double *[n];
 
    for (int i = 0; i < n; i++)
        arr[i] = new double[m];
 
    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++) {
            cout << " Enter arr[" << i << "][" << j << "] = ";
            cin >> arr[i][j];
        }
 
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            cout << " " << arr[i][j];
        }
        cout << endl;
    }
    cout << endl;
 
    for (int i = 0; i < n; i++)
        delete[] arr[i];
    delete[] arr;
}

Пример ввода двумерного статического массива с клавиатуры и его вывода :
Кликните здесь для просмотра всего текста
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
#include <iostream>
using namespace std;
 
int main()
{
    const int row_size = 10;
    const int col_size = 15;
    double arr[row_size][col_size];
 
    int n; cout << " Enter n = "; cin >> n;
    int m; cout << " Enter m = "; cin >> m;
 
    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++) {
            cout << " Enter arr[" << i << "][" << j << "] = ";
            cin >> arr[i][j];
        }
 
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            cout << " " << arr[i][j];
        }
        cout << endl;
    }
    cout << endl;
}
2
0 / 0 / 0
Регистрация: 06.11.2018
Сообщений: 74
12.02.2019, 07:47  [ТС] 3
Забыл написать, в задании динамический масив.

Добавлено через 1 минуту
JohnBlack123, Спасибо, дома попробую внедрить
0
JohnBlack123
12.02.2019, 10:10     Вместо рандома, сделать ввод количества строк, столбцов и элементов массива с клавиатуры
  #4

Не по теме:

Цитата Сообщение от Vaguk Посмотреть сообщение
Спасибо, дома попробую внедрить
Спасибо в карман не положишь :)

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.02.2019, 10:10

Помогите сделать ввод количества элементов массива и сами элементы массива
var a:array of integer; i:integer; BEGIN clrscr; randomize; writeln('Массив А:'); for i:=1...

Переделать с рандома на ввод с клавиатуры
Написать функцию, которая создает список L2, являющийся копией списка L1, начинающегося с данного...

Нерегулярный массив. Ввод количества строк. Случайное количество столбцов. Java
1. Нужно создать нерегулярный массив, подобный table: int table = new int ; table = new int;...

Изменение количества строк и столбцов массива
Не работает часть кода : scanf(&quot;%d&quot; , &amp;str); mas = (int**)realloc(mas,str*sizeof(int*)); for...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru