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

Использование функций при работе с двумерными массивами

17.02.2013, 21:43. Показов 1144. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дана прямоугольная вещественная матрица [m x n]. Обнулить все четные столбцы и нечетные строки. В полученной матрице отсортировать по возрастанию каждую строку, оставляя нули на своих местах.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.02.2013, 21:43
Ответы с готовыми решениями:

Использование указателей при работе с одномерными и двумерными массивами
Даны натуральное число n, действительные числа A1......An . Если в последовательности A1.....An...

Использование указателей при работе с одномерными и двумерными массивами
Даны натуральное число n, действительные числа a1, ..., an. Преобразовать последова-тельность a1,...

Использование указателей при работе с одномерными и двумерными массивами.
Кто может решить. Даны натуральное число n,действительные числа X1,...,Xn.Вычислить: ...

Работа с двумерными числовыми массивами. Использование указателей. Использование функций пользователя.
Помогите пожалуйста!!!!!!! Сделать три варианта: первый вариант – передача данных между...

5
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
18.02.2013, 02:13 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
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#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;
}
1
0 / 0 / 0
Регистрация: 10.02.2013
Сообщений: 17
18.02.2013, 23:07  [ТС] 3
благодарю, все так понятно объяснили, что сразу все понятно
0
0 / 0 / 0
Регистрация: 10.02.2013
Сообщений: 17
24.02.2013, 19:02  [ТС] 4
Цитата Сообщение от daslex Посмотреть сообщение
srand(time(NULL));
что означает эта строчка??? и почему пишется что она не определена в функции???
0
afonya_jan
24.02.2013, 19:20 5
Цитата Сообщение от bilochka Посмотреть сообщение
что означает эта строчка??? и почему пишется что она не определена в функции???
Заполнение случайными числами

Добавлено через 6 минут
Цитата Сообщение от bilochka Посмотреть сообщение
и почему пишется что она не определена в функции???
#include<stdlib.h>
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
24.02.2013, 19:48 6
afonya_jan,генерация случайного числа в 29 строчке и запись его в массив там же.
bilochka, поставьте маленькое число строк и колонок. Например 3 на 3. Временно уберите ту строчку, о которой спросили. И запустите программу раза 3.

Внимательно посмотрите на получаемые массивы. Исходный массив, который был создан первым, без этой строчки генерироваться заново не станет. Будут создаваться те же самые значения, что создались при прошлом запуске и ими заполнятся ячейки.
===============
Эта строчка как рычаг == давай мне разные значения при каждом новом запуске программы.

Верните строчку на место, повторите действия, описанные выше и скорее всего, что это такое хорошо поймете.
0
24.02.2013, 19:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.02.2013, 19:48
Помогаю со студенческими работами здесь

Ошибка с памятью при работе с двумерными массивами.
{ int i, j, c, kol; n=StrToInt(Edit1-&gt;Text); m=StrToInt(Edit2-&gt;Text); for(i=0; i&lt;n; i++) { ...

Указатели при работе с одномерными и двумерными массивами
Помогите Даны натуральное число n, целые числа а1,...,аn . Выяснить, имеется ли среди чисел...

О работе с динамическими двумерными (многомерными) массивами
Всех с наступающим профессиональным праздником, многоуважаемые гуру С++! задачка простая - работа...

Использование показателей при работе с массивами
n натуральное, a1,...,an действительные числа. Найти : a1a2n+a2a2n-1+...+anan+1

Использование показателей при работе с массивами
Даны a1,...,an действительные числа, n* натуральное число. Если в этой последовательности...

Использование указателей при работе с одномерными массивами
Реализовать на Си. Даны натуральное число n, действительные числа a1,...,an. Если...


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

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

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