0 / 0 / 0
Регистрация: 27.05.2007
Сообщений: 3

Удалить из матрицы нулевые строки

27.05.2007, 02:46. Показов 4291. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Господа уважаемые программеры!
Пожалуйста помогите доделать детскую прогу.

Имеется матрица NxM элементов. Нужно удалить методом сдвига все строки, состоящие из нулей.

Вот то что писал сам, может пригодится:
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
63
64
65
66
67
68
69
70
71
72
#include <stdio.h>
#include <conio.h>
 
void main(void)
{
 
int i,j,l=0,k,q,v,g=0,lmax=0,
    n=4,                                            //kolvo strok
    m=2,                                            //kolvo stolbcov
    a[20][20];                                      //maks dlina massiva
 
clrscr();                                           //o4istka ekrana
printf("Vvod matrici %dx%d\n",n,m);
for (i=0;i<n;i++) {
    for (j=0;j<m;j++) {
        printf("Vvedite element a[%d][%d]: ",i,j);
        scanf("%d",&a[i][j]);
        }
    }
 
/* output matrix */
clrscr();
printf("Icxodnaya matrica:\n\n");
for (i=0;i<n;i++) {
    for (j=0;j<m;j++) {
        printf("%3d",a[i][j]);
        if (j==m-1) printf("\n");
        }
    }
/* poisk nylevoi stroki */
 
for(i=0;i<n;i++) {
    for (j=0;j<m;j++) {
        if (a[i][j]==0) {
       //   printf("%d[%d][%d]=0\n",a[i][j],i,j);
            l++;
            lmax++;
            if (l==m) {
            //printf("nlystrk\n");
                l=0;
                g++;
// ydalenie stroki
                //n--;
                for(v=i;v<n;v++) {
                    printf("v= %d\n",v);
                    for(q=0;q<m;q++) {
                        a[i][q]=a[i+1][q];
                    }
                }
 
            }
        }// else printf("%d[%d][%d]!=0\n",a[i][j],i,j);
 
    }
 
    l=0;
    //printf("\n");
    //printf("i=%d\n",i);
}
printf("naideno nulei: %d",lmax);
printf("\nPoly4ennaya matrica:\n\n");
printf("g= %d\n",g);
for(i=0;i<n;i++) {
    for (j=0;j<m;j++) {
        printf("%3d",a[i][j]);
        if (j==m-1) printf("\n");
        }
    }
 
printf("\npress any key to continue");
getch();
}
i,j,v,q - переменные для циклов
lmax - считает вбщее кол-во найденых нулей
l - считает нули в текущей строке
g - кол-во найденых нулевых строк
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.05.2007, 02:46
Ответы с готовыми решениями:

Удалить все нулевые столбцы из матрицы
Нужно в статическом двумерном массиве n*m удалить все нулевые столбцы

Удалить столбцы матрицы, в которых есть нулевые элементы
Изменить матрицу – удалить столбцы матрицы, в которых есть нулевые элементы. C++ Добавлено через 25 минут Матрица(nxn)

Найти нулевые строки матрицы
Задана матрица целых чисел.Найти номера строк все элементы которых равны нулю.Использовать функции Помогите отредактировать пожалуйста ...

6
12 / 12 / 4
Регистрация: 16.03.2007
Сообщений: 109
28.05.2007, 00:15
Я так быстренько взглянул, вроде бы всё правильно.
Скажи что именно тебя не устраивает?
0
0 / 0 / 0
Регистрация: 27.05.2007
Сообщений: 3
28.05.2007, 02:57  [ТС]
сдвиг (удаление) строки неправильно работает, допустим если ввести все нули а последний элемент поставить 1, то выведется две строки
0 0 0 0
0 0 0 1
0
12 / 12 / 4
Регистрация: 16.03.2007
Сообщений: 109
28.05.2007, 23:19
Я тут кое-что набросал. Посмотри, что не устроит напиши
Вложения
Тип файла: zip nuli.zip (597 байт, 87 просмотров)
0
0 / 0 / 0
Регистрация: 27.05.2007
Сообщений: 3
28.05.2007, 23:57  [ТС]
здорово! а можно сделать без второго массива F ?
0
12 / 12 / 4
Регистрация: 16.03.2007
Сообщений: 109
29.05.2007, 19:18
Я тут кое-что исправил
Вложения
Тип файла: zip nuli.zip (623 байт, 117 просмотров)
0
kuchok
07.02.2009, 12:50
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 <stdio.h>
#include <conio.h>
#include <malloc.h>
void main(void)
{
 
int i,j,l=0,k,q,v,g=0,lmax=0,
    n=4,                                            
    m=2,                                            
    a[4][2];                                        
int *f;
f=(int*)malloc(n*sizeof(int));                                          
printf("Vvod matrici %dx%d\n",n,m);
for (i=0;i<n;i++) {
    for (j=0;j<m;j++) {
        printf("Vvedite element a[%d][%d]: ",i,j);
        scanf("%d",&a[i][j]);
        }
    }
 
/* output matrix */
 
printf("Icxodnaya matrica:\n\n");
for (i=0;i<n;i++) {
    for (j=0;j<m;j++) {
        printf("%3d",a[i][j]);
        if (j==m-1) printf("\n");
        }
    }
/* poisk nylevoi stroki */
 
for(i=0;i<n;i++) 
{
    for (j=0;j<m;j++) 
    {
        if(a[i][j]==0) {l++; if(m==l) {f[i]=1;g++;}}
    }
    lmax+=l;
    l=0;
}
 
 
printf("naideno nulei: %d",lmax);
printf("\nPoly4ennaya matrica:\n\n");
printf("g= %d\n",g);
for(i=0;i<n;i++) 
{
    for (j=0;j<m;j++) 
    {
        if( f[i]==1) break;
        else printf("%3d",a[i][j]);
        
    }
if(f[i]!=1)printf("\n");
}
 
printf("\npress any key to continue");
getch();
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.02.2009, 12:50
Помогаю со студенческими работами здесь

Матрицы. нулевые и одинаковые строки.
Дана целочисленная матрица размера 56. Найти номера строк, где все элементы нулевые, все элементы одинаковы. Вот недописанный код...

Удалить нулевые элементы из матрицы
Всем привет. Не могу удалить нулевые элементы из матрицы B. Помогите очень надо. var a:array of integer; b:array of integer; ...

В заданной матрице удалить все строки, содержащие нулевые элементы
В заданной матрице удалить все строки, содержащие нулевые элементы. Удаление строки осуществить в виде метода. ___ Не очень понимаю...

Удалить все нулевые элементы, расположенные выше главной диагонали матрицы
Добрый нужна помощь с C#. надо до завтра нарисовать 4 лабы... а я в Шарпах ноль... задачи все связаны с массивами... если кто...

Вывести те строки матрицы, в которых есть нулевые элементы
Помогите, пожалуйста, найти и исправить. Задача: Для матрицы А (4 сторки, 5 столбцов) вывести те строки, в которых есть нулевые ...


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

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

Новые блоги и статьи
Чем асинхронная логика (схемотехника) лучше тактируемой, как я думаю, что помимо энергоэффективности - ещё и безопасность.
Hrethgir 14.05.2025
Помимо огромного плюса в энергоэффективности, асинхронная логика - тотальный контроль над каждым совершённым тактом, а значит - безусловная безопасность, где безконтрольно не совершится ни одного. . .
Многопоточные приложения на C++
bytestream 14.05.2025
C++ всегда был языком, тесно работающим с железом, и потому особеннно эффективным для многопоточного программирования. Стандарт C++11 произвёл революцию, добавив в язык нативную поддержку потоков,. . .
Stack, Queue и Hashtable в C#
UnmanagedCoder 14.05.2025
Каждый опытный разработчик наверняка сталкивался с ситуацией, когда невинный на первый взгляд List<T> превращался в узкое горлышко всего приложения. Причина проста: универсальность – это прекрасно,. . .
Как использовать OAuth2 со Spring Security в Java
Javaican 14.05.2025
Протокол OAuth2 часто путают с механизмами аутентификации, хотя по сути это протокол авторизации. Представьте, что вместо передачи ключей от всего дома вашему другу, который пришёл полить цветы, вы. . .
Анализ текста на Python с NLTK и Spacy
AI_Generated 14.05.2025
NLTK, старожил в мире обработки естественного языка на Python, содержит богатейшую коллекцию алгоритмов и готовых моделей. Эта библиотека отлично подходит для образовательных целей и. . .
Реализация DI в PHP
Jason-Webb 13.05.2025
Когда я начинал писать свой первый крупный PHP-проект, моя архитектура напоминала запутаный клубок спагетти. Классы создавали другие классы внутри себя, зависимости жостко прописывались в коде, а о. . .
Обработка изображений в реальном времени на C# с OpenCV
stackOverflow 13.05.2025
Объединение библиотеки компьютерного зрения OpenCV с современным языком программирования C# создаёт симбиоз, который открывает доступ к впечатляющему набору возможностей. Ключевое преимущество этого. . .
POCO, ACE, Loki и другие продвинутые C++ библиотеки
NullReferenced 13.05.2025
В C++ разработки существует такое обилие библиотек, что порой кажется, будто ты заблудился в дремучем лесу. И среди этого многообразия POCO (Portable Components) – как маяк для тех, кто ищет. . .
Паттерны проектирования GoF на C#
UnmanagedCoder 13.05.2025
Вы наверняка сталкивались с ситуациями, когда код разрастается до неприличных размеров, а его поддержка становится настоящим испытанием. Именно в такие моменты на помощь приходят паттерны Gang of. . .
Создаем CLI приложение на Python с Prompt Toolkit
py-thonny 13.05.2025
Современные командные интерфейсы давно перестали быть черно-белыми текстовыми программами, которые многие помнят по старым операционным системам. CLI сегодня – это мощные, интуитивные и даже. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru