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

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

27.11.2019, 01:20. Показов 1443. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот условие:
Для двовимірного масиву з M*N чисел отримати новий одновимірний масив з номерів стовпців, усі елементи яких нулі.
Получить одномерный массив из номеров столбцов, все элементы которых ноли.

Код работает не правильно
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
int main()
{
setlocale(LC_ALL, "ru");
srand(time(NULL));
int m, n, z, k ;
cout << "Ведите розмерность матрици : " << endl;
cin >> m;
cin >> n;
double**a =new double*[m];
double* B = new double[m];
 
for ( int i = 0;i < m;i++)
a[i] = new double[n];
 
for (int i = 0; i < m; i++){
for (int j = 0; j < n; j++) {
a[i][j] = (-1 + rand() % 3); cout << setw(5) << a[i][j];}
cout << endl;cout << endl;cout << endl;}
 
z = 0;
for (int j = 0; j <= n; j++){
k = false;
for (int i = 0; i <= m; i++) {
 
if (a[i][j] != 0) {
k = true;
}
}
if (k!=true) {
B[z] = j; z++;
}
else{
cout << "Не все ноли в "<< j+1 << " столбике";
cout << endl;
}
 
}
for (int i = 0; i < z; i++){
cout << B[i] << endl;
}
 
 
for (int i = 0; i < m; i++)
delete a[i];
delete[]a;
system("pause");
return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.11.2019, 01:20
Ответы с готовыми решениями:

Составить одномерный массив В из номеров столбцов, все элементы которых отрицательны
Помогите написать программу. Дана матрица А(m,n). Составить одномерный массив В, в котором В(j) (j=1,2,...,N) равно номерам столбцов, все...

Составить одномерный массив из номеров столбцов матрицы, элементы которых упорядочены по возрастанию
Дана вещественная матрица размером NxM. Составить одномерный массив из номеров столбцов ,элементы которых упорядочены по возрастанию

Сформировать одномерный массив из номеров столбцов, элементы которых образуют возрастающую последовательность
Дана вещественная матрица D размером 8х12. Сформировать одномерный массив, состоящий из номеров столбцов, элементы которых образуют...

9
Just Do It!
 Аватар для XLAT
4189 / 2644 / 654
Регистрация: 23.09.2014
Сообщений: 8,901
Записей в блоге: 3
27.11.2019, 01:59
не тестил.
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
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <iomanip>
 
int main()
{   setlocale(0,"");
    srand(time(NULL));
    int m, n, z, k ;
    std::cout << "Ведите розмерность матрици : \n";
    std::cin >> m;
    std::cin >> n;
    double**a =new double*[m];
    for ( int i = 0; i < m; i++)
        a[i] = new double[n];
        
    double* B = new double[m];
 
    for (int i = 0; i < m; i++)
    {   for (int j = 0; j < n; j++)
        {   a[i][j] = (-1 + rand() % 3);
            std::cout << std::setw(5) << a[i][j];
        }
        std::cout << std::endl;
        std::cout << std::endl;
        std::cout << std::endl;
    }
 
    z = 0;
    for (int j = 0; j < n; j++)
    {   k = false;
        for (int i = 0; i < m; i++)
        {
            if (a[i][j] != 0)
            {   k = true;
            }
        }
        if (k!=true)
        {   B[z] = j;
            z++;
        }
        else
        {   std::cout << "Не все ноли в "<< j+1 << " столбике";
            std::cout << std::endl;
        }
    }
    
    for (int i = 0; i < z; i++)
    {   std::cout << B[i] << std::endl;
    }
 
 
    for (int i = 0; i < m; i++)
        delete a[i];
    delete[]a;
    
    system("pause");
    return 0;
}
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
27.11.2019, 04:35
XLAT, что поменялось?
0
Just Do It!
 Аватар для XLAT
4189 / 2644 / 654
Регистрация: 23.09.2014
Сообщений: 8,901
Записей в блоге: 3
27.11.2019, 07:53
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
что поменялось?
избавил от аппкраша:


но вы потестите, если чо не так, пишите, я обязательно поправлю.
0
Модератор
Эксперт С++
 Аватар для zss
13766 / 10960 / 6490
Регистрация: 18.12.2011
Сообщений: 29,234
27.11.2019, 08:30
XLAT,
Цитата Сообщение от XLAT Посмотреть сообщение
if (k!=true)
C++
1
if(!k)
0
Just Do It!
 Аватар для XLAT
4189 / 2644 / 654
Регистрация: 23.09.2014
Сообщений: 8,901
Записей в блоге: 3
27.11.2019, 09:24
zss,
уже я ответил, что я исправил аппкраш.

дальше,
пусть афтор напишет, что означает:
Цитата Сообщение от Tomash_ Посмотреть сообщение
Код работает не правильно
я хочу услышать расшифровку этой фразы лично от него.

при чем требовать это от него можно явно, а можно и не явно.

Цитата Сообщение от zss Посмотреть сообщение
XLAT,
Цитата Сообщение от XLAT Посмотреть сообщение
if (k!=true)
C++
Выделить код
1
if(!k)
сорри, я не являюсь доверительным лицом и даже простым посредником между афтором и отвечающими.

лучше обращаться напрямую к афтору.
0
Модератор
Эксперт С++
 Аватар для zss
13766 / 10960 / 6490
Регистрация: 18.12.2011
Сообщений: 29,234
27.11.2019, 10:02
XLAT, я просто хотел заметить, что не надо пропускать такое написание кода,
т.к. оно является следствием непонимания булевских выражений.
0
Just Do It!
 Аватар для XLAT
4189 / 2644 / 654
Регистрация: 23.09.2014
Сообщений: 8,901
Записей в блоге: 3
27.11.2019, 10:03
zss,
ок, вот проверяйте:
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
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <iomanip>
 
int main()
{   setlocale(0,"");
    srand(time(NULL));
 
    int m, n;
    std::cout << "Ведите розмерность матрици : \n";
    std::cin >> m;
    std::cin >> n;
    double**a =new double*[m];
    for ( int i = 0; i < m; i++)
        a[i] = new double[n];
        
    int* B = new int[m];
 
    for (int i = 0; i < m; i++)
    {   for (int j = 0; j < n; j++)
        {   a[i][j] = (-1 + rand() % 3);
            std::cout << std::setw(5) << a[i][j];
        }
        std::cout << "\n\n\n";
    }
 
    int b = 0;
    for (int i = 0; i < n; i++)
    {   bool k = false;
        B[b] = 0;
        for (int j = 0; j < m; j++)
        {   
            if (a[j][i] != 0)
            {   k = true;
            }
            else continue;
        }
        
        if (k) std::cout << "Не все ноли в " << i + 1 << " столбике\n";
        else   B[b++] = i+1;
    }
    
    if(B[0] == 0)
    {   std::cout << "Нет столбцов, в которых все нули!\n\n";
    }
    
    std::cout << "Перечень столбцов c нулями:\n";
    for (int i = 0; i < b; i++)
    {   std::cout << B[i] << ", ";
    }
 
    std::cout << "\n\nFINISH ...\n";
 
    for (int i = 0; i < m; i++)
        delete a[i];
    delete[]a;
    
    std::cin.get();
    return 0;
}
0
Модератор
Эксперт С++
 Аватар для zss
13766 / 10960 / 6490
Регистрация: 18.12.2011
Сообщений: 29,234
27.11.2019, 10:34
Я бы этот кусочек написал так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int ib = 0; // Index in B array
    for (int i = 0; i < n; i++)
    {   
        bool IsZero = true; // Is Zero column
        //B[ib] = 0;
        for (int j = 0; j < m; j++)
        {   
            if (a[j][i] != 0)
            {   
               IsZero  = false;
                break; 
            }
        }
        if (IsZero )
            B[ib++] = i+1;
        else
            std::cout << "Не все ноли в " << i + 1 << " столбике\n";
    }
    if( ib == 0 )
       std::cout << "Нет столбцов, в которых все нули!\n\n";
Можно, кстати, обойтись вообще без переменной IsZero
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int ib = 0; 
    for (int i = 0; i < n; i++)
    {   
        int j = 0;
        for (; j < m; j++)
            if (a[j][i] != 0)
                break;
        if (j==m ) 
            B[ib++] = i+1;
        else
            std::cout << "Не все ноли в " << i + 1 << " столбике\n";
    }
    if( ib == 0 )
       std::cout << "Нет столбцов, в которых все нули!\n\n";
1
Just Do It!
 Аватар для XLAT
4189 / 2644 / 654
Регистрация: 23.09.2014
Сообщений: 8,901
Записей в блоге: 3
27.11.2019, 10:53
Цитата Сообщение от zss Посмотреть сообщение
break;
виноват не я, виноват рейт
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.11.2019, 10:53
Помогаю со студенческими работами здесь

Вывести массив номеров строк и массив номеров столбцов, все элементы которых равны только 1 или только 0
Задан размер квадратной матрицы и значения ее элементов (0 или 1). Сформировать и вывести массив номеров строк и массив номеров столбцов,...

Двумерный массив. Составить вектор из номеров столбцов, в которых все элементы упорядочены по невозрастанию значений.
Пожалуйста,помогите! как можно скорее, сама, увы, бессильна( надо написать программу, турбо паскаль Дана матрица А(M,N). ...

Составить одномерный массив из номеров строк матрицы, в которых по главной диагонали стоят нули
Ввести с клавиатуры квадратную матрицу. Составить одномерный массив из номеров строк этой матрицы, в которых по главной диагонали стоят...

Найти номера столбцов, все элементы которых - нули
Помогите. Дано квадратную матрицу А размера nxn целых чисел. Найти номера столбцов, все элементы которых - нули.

Найти номера столбцов, все элементы которых - нули
Задача.Дано квадратную матрицу А размера nxn целых чисел. Найти номера столбцов, все элементы которых - нули.


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru