Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Programer101
0 / 0 / 0
Регистрация: 04.12.2012
Сообщений: 48
1

Обработка матриц

23.12.2013, 20:49. Просмотров 860. Ответов 1
Метки нет (Все метки)

Дан двумерный массив. В каждой строке все его элементы, не равные нулю, переписать (сохраняя порядок) в начало строки, а нулевые элементы – в конец массива. Новый массив не заводить.

Добавлено через 2 часа 4 минуты
очень нужно

Добавлено через 43 минуты
up ^
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2013, 20:49
Ответы с готовыми решениями:

Обработка матриц
Добрый день, помогите. Дана целочисленная матрица MxN.Найти...

Обработка матриц
Помогите пожалуйста! Написать процедуру, которая принимает на входе двумерную...

Обработка матриц
помогите решить проблему, не могу понять, как сделать так, чтобы вводить размер...

Обработка матриц
Уважаемые форумчане помогите с задачей. Определить максимальный елемент...

Обработка матриц
В матрице Z(5,6) первый отрицательный элемент каждого столбца заменить суммой...

1
Genn55
378 / 225 / 108
Регистрация: 26.12.2012
Сообщений: 744
23.12.2013, 20:52 2
Лучший ответ Сообщение было отмечено Programer101 как решение

Решение

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
73
74
75
76
77
78
#include <iostream>
#include <stdlib.h>
#include<time.h>
using namespace std;
/*ФУНКЦИЯ ВЫДЕЛЕНИЯ ПАМЯТИ ДЛЯ МАССИВА*/
void funcinit(double **(&A),const int N,const int M) //принимает ссылку на массив, количество строк и колонок
{
    A=new double*[N]; //Выделяю память под двумерный массив
       for (int i=0;i<N;i++) A[i]=new double[M];
}
/*ФУНКЦИЯ ОСВОБОЖДЕНИЯ ПАМЯТИ ОТ МАССИВА*/
void funcfree(double **(&A), const int N) //принимает ссылку на массив и количество строк
{
   for (int i=0;i<N;i++) delete []A[i]; //Освобождение памяти от динамического массива
   delete []A;
 
}
/*ФУНКЦИЯ ЗАПОЛНЕНИЯ МАССИВА ЗНАЧЕНИЯМИ*/
void funcfill(double  **(&A),const int N,const int M) //принимает ссылку на массив, число строк и колонок
{
     srand(time(NULL)); //Включаю генератор псевдослучайных значений
     for (int i=0;i<N;i++) //Цикл двумерного массива
     {
         for (int j=0;j<M;j++)
         {
             A[i][j]=(rand()%10); //Записываю в активную ячейку выпавшее значение
         }
     }
}
/*ФУНКЦИЯ ВЫВОДА МАССИВА НА ЭКРАН*/
void funcprint(double **(&A),const int N,const int M) //принимает массив, количество строк и колонок
{
     for (int i=0;i<N;i++) //Цикл двумерного массива
     {
         for (int j=0;j<M;j++)
         {
             cout<<A[i][j]<<"\t"; //Вывожу текущее значение
         }
         cout<<"\n"; //Строка закончилась, перехожу на новую
     }
}
/*ФУНКЦИЯ МЕНЯЕТ ДВА ЭЛЕМЕНТА МЕСТАМИ*/
void swap(double &x,double &y) //Принимает два элемента, которые нужно поменять
{
    double temp=x;
    x=y;
    y=temp;
 
}
/*ФУНКЦИЯ ПЕРЕСТАНОВКИ ДЛЯ СТРОК ДВУМЕРНОГО МАССИВА*/
void funcsort(const int k,double **(&Arr),const int N) //Принимает номер строки, ссылку на массив и число строк
{
    for (int i=1;i<N;i++) //Цикл пузырьковой сортировки одномерного массива
    {
    for (int j=0;j<N-1;j++)
    {
          if ((Arr[k][j]==0)) swap(Arr[k][j],Arr[k][j+1]); //Если текущий элемент 0, меняем их местами
    }
    }
}
int main()
{
system("chcp 1251 > nul");
    double **Arr=NULL; //Основной массив
    int N=10,M=20; //Число строк и колонок
    cout<<"N == ";cin>>N; //Вводим число строк
    cout<<"M == ";cin>>M; //Вводим число колонок
       funcinit(Arr,N,M); //Выделяем память массиву
          funcfill(Arr,N,M); //Заполняем массив значениями
          cout<<"ИСХОДНЫЙ МАССИВ\n";
          funcprint(Arr,N,M); //Выводим массив на экран
          cout<<"\nСортированный массив\n";
        for (int i=0;i<N;i++) funcsort(i,Arr,M); //С помощью цикла сортируем каждую строку. i-номер троки, M-число колонок
        funcprint(Arr,N,M);//Выводим на экран результат сортировки строк двумерного массива
       funcfree(Arr,N); //Не забываем очистить память
 
    return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.12.2013, 20:52

Обработка матриц
Помогите кому не лень) Ввести двумерный массив {A}_{3x5}. Определить в нём...

Обработка матриц - С++
Вот задача нужно решить - С++. Не могу решить, не получается... Найти...

обработка матриц
Получить квадратную матрицу порядка n: 1111...1 222...2 33...3 ....


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

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

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