![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Пользователь
Регистрация: 10.02.2013
Сообщений: 12
|
![]()
Помогите пожалуйста, уже очень долгое время не могу понять в чем ошибка, вот условие:
1. Дана прямоугольная вещественная матрица [m x n]. Обнулить все четные столбцы и нечетные строки. В полученной матрице отсортировать по возрастанию каждую строку, оставляя нули на своих местах. Вот код: #include<iostream> #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, const int M) { for (int i=0;i<N;i++) delete []A[i]; delete []A; A=NULL; } /*Заполнение массива*/ 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()%100-50); } } } /*Вывод массива на экран*/ 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 funcnull(double **(&A),const int N,const int M) { for (int i=0;i<N;i++) { for (int j=0;j<M;j++) { if (!(i%2)) A[i][j]=0; if (j%2) A[i][j]=0; } } } /*В полученной матрице отсортировать по возрастанию каждую строку, оставляя нули на своих местах.*/ void funcsort(const int k,double **(&Arr),const int N) { for (int i=1;i<N;i++) { for (int j=0;j<N-2;j++) { if ((Arr[k][j]>Arr[k][j+2])) swap(Arr[k][j],Arr[k][j+2]); //Если текущий элемент больше следующего, меняем их местами } } } int main() { system("chcp 1251"); //Это для отображения русских символов при шрифте Lusidia Console 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\n"; funcnull(Arr,N,M); //Запись в массив нулей funcprint(Arr,N,M); //Вывод массива на экран cout<<"\nСортированный массив\n"; for (int i=1;i<N;i+=2) funcsort(i,Arr,M); //Цикл сортировки массива по строкам funcprint(Arr,N,M); //Вывод массива на экран funcfree(Arr,N,M); //Очистка памяти cin.get(); cin.get(); return 0; } |
![]() |
![]() |
![]() |
#2 |
C/C++, Java
Участник клуба
Регистрация: 28.03.2012
Сообщений: 1,680
|
![]()
Что не работает, на какой строке выдает ошибку???
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости" Сложность - враг простоты и удобства! |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
C/C++ Использование функций при работе с двумерными массивами | bilochka | Помощь студентам | 0 | 23.02.2013 22:44 |
Указатели при работе с одномерными и двумерными массивами | Credo4444 | Помощь студентам | 13 | 20.04.2011 20:04 |
Использование текстовых файлов для работы с двумерными массивами. | bo-al | Помощь студентам | 3 | 08.02.2010 20:43 |
использование процедур и функций для работы с массивами.....Паскаль.... | КиношкА | Помощь студентам | 6 | 13.01.2008 14:23 |