Форум программистов, компьютерный форум CyberForum.ru

Функция: Переписать в одномерный массив элементы четных столбцов, значения которых меньше 1 - C++

Восстановить пароль Регистрация
 
strag 93
1 / 1 / 0
Регистрация: 14.11.2010
Сообщений: 57
30.12.2010, 08:53     Функция: Переписать в одномерный массив элементы четных столбцов, значения которых меньше 1 #1
Дана матрица. Переписать в одномерный массив элементы четных столбцов, значения которых меньше 1. Оформить в виде функции.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.12.2010, 08:53     Функция: Переписать в одномерный массив элементы четных столбцов, значения которых меньше 1
Посмотрите здесь:

Одномерный массив, элементы меньше заданного числа C++
C++ Матрица.Переписать в одномерный массив эл-ты четных столбцов значения которых меньше 1. Оформить в виде Функции
C++ переписать в одномерный массив ненулевые элементы и найти наибольшее по модулю
C++ Элементы матрицы переписать построчно в одномерный массив
C++ Переписать в одномерный массив элементы матриц А и В, имеющие одинаковые индексы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
VtaMC
Просто Веталь
 Аватар для VtaMC
159 / 99 / 5
Регистрация: 11.05.2009
Сообщений: 628
30.12.2010, 09:39     Функция: Переписать в одномерный массив элементы четных столбцов, значения которых меньше 1 #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
#include <cstdlib>
#include <iostream>
 
//функция получения чисел
int * elements(int arr[5][3], int & countOfArray)
{
    int count = 0, 
        it = 0;
    for(int i = 0; i < 5; i++)
        if(i % 2)
            for(int j = 0; j < 3; j++)
                if(arr[i][j] < 1)
                    count++;
                    
    countOfArray = count;
    
    int * buff = new int[count];
    
    for(int i = 0; i < 5; i++)
        if(i % 2)
            for(int j = 0; j < 3; j++)
                if(arr[i][j] < 1)
                {
                    buff[it] = arr[i][j];
                    it++;
                }
    return buff;     
}
 
int main(int argc, char *argv[])
{
    int matrix[5][3] = {
        {0, 2, -1},
        {-3, 6, 9},
        {2, -8, 0},
        {4, -7, 9},
        {-5, 9, 0}
    }, count, * arr = elements(matrix, count);
    
    for(int i = 0; i < count; i++)
        cout << " " << arr[i];
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
strag 93
1 / 1 / 0
Регистрация: 14.11.2010
Сообщений: 57
30.12.2010, 09:49  [ТС]     Функция: Переписать в одномерный массив элементы четных столбцов, значения которых меньше 1 #3
мне нада в таком виде
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
#include<iostream.h>
const int n=4,m=4;
void InArray (float [n][m]);
void PrintArray ( float [n][m]);
void Change (float [n][m]);
void main()
{
float a[n][m];
InArray (a);
PrintArray (a);
Change (a);
}
void InArray (float a[n][m])
{
cout<<"Введите матрицу "<<n<<"*"<<m<<endl;
  for (int i=0;i<n;i++)
  {
    for (int j=0;j<m;j++)
     cin>>a[i][j];
     cout<<endl;
  }
 }
void PrintArray ( float a[n][m])
 {
     cout<<"Матрица A: \n ";
 for(int i=0;i<n;i++)
  {
    cout<<endl;
    for(int j=0;j<m;j++)
    cout<<"  "<<a[i][j];
    }
    }
void Change (float [n][m])
{
float b;
for(int j=0;j<m;j++)
 
if(j%=2)
{
b=j;
}
cout<<"Ьатрица \n";
cout<<"b="<<b;
 
}
VtaMC
Просто Веталь
 Аватар для VtaMC
159 / 99 / 5
Регистрация: 11.05.2009
Сообщений: 628
30.12.2010, 10:25     Функция: Переписать в одномерный массив элементы четных столбцов, значения которых меньше 1 #4
Ну вот ещё одну функцию добавил, только я не внял, что ты имеешь ввиду под "в таком виде"? В виде отдельных функций, вот оно, ниже:

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
#include <cstdlib>
#include <iostream>
 
//функция получения чисел
int * elements(int arr[5][3], int & countOfArray)
{
    int count = 0, 
        it = 0;
    for(int i = 0; i < 5; i++)
        if(i % 2)
            for(int j = 0; j < 3; j++)
                if(arr[i][j] < 1)
                    count++;
                    
    countOfArray = count;
    
    int * buff = new int[count];
    
    for(int i = 0; i < 5; i++)
        if(i % 2)
            for(int j = 0; j < 3; j++)
                if(arr[i][j] < 1)
                {
                    buff[it] = arr[i][j];
                    it++;
                }
    return buff;     
}
 
void printArray(int * arr, int count)
{
    for(int i = 0; i < count; i++)
        cout << " " << arr[i];
}
 
int main(int argc, char *argv[])
{
    int matrix[5][3] = {
        {0, 2, -1},
        {-3, 6, 9},
        {2, -8, 0},
        {4, -7, 9},
        {-5, 9, 0}
    }, count, * arr = elements(matrix, count);
    
    printArray();
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
strag 93
1 / 1 / 0
Регистрация: 14.11.2010
Сообщений: 57
02.01.2011, 10:00  [ТС]     Функция: Переписать в одномерный массив элементы четных столбцов, значения которых меньше 1 #5
Дана матрица. Переписать в одномерный массив элементы четных столбцов, элементы которые меньше 1. Оформить в виде функции

Вот написал , но не выводит , в одномерный массив.
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
#include<iostream.h>
const int n=4,m=4;
void InArray (float [n][m]);
void PrintArray (float [n][m]);
void Change (float [n][m]);
 
void main()
{
float a[n][m];
InArray (a);
PrintArray (a);
Change (a);
 
}
void InArray (float a[n][m])
 
 {
 
   cout<<"ведите масив "<<n<<"*"<<m<<endl;
   for (int i=0;i<n;i++)
{
  for(int j=0;j<m;j++)
  cin>>a[i][j];
  cout<<endl;
} 
   }
    
    
void PrintArray ( float a[n][m])
 {
     cout<<"Матрица : \n ";
 for(int i=0;i<n;i++)
  {
    cout<<endl;
    for(int j=0;j<m;j++)
    cout<<"  "<<a[i][j];
    }
    }
void Change (float [n][m])
{
 cout<<endl;
 int j;
float b,x[m];
 
for( j=0;j<m;j++)
 
if(j<1 &&j%2 )
{
x[j]=j;
b=x[j];
}
 
cout<<"Matrica b \n";
cout<<"b="<<b;
}
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
02.01.2011, 11:01     Функция: Переписать в одномерный массив элементы четных столбцов, значения которых меньше 1 #6
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
#include<iostream>
#include<iomanip>
using namespace std;
 
const int n=4,m=4;
void InArray (float [n][m]);
void PrintArray (float [n][m]);
void Change (float [n][m]);
 
int main()
{
    float a[n][m];
    InArray (a);
    PrintArray (a);
    Change (a);
    return 0;
}
void InArray (float a[n][m])
 
 {
   cout<<"enter massiv "<<n<<"*"<<m<<endl;
   for (int i=0;i<n;i++)
{
  for(int j=0;j<m;j++)
  cin>>a[i][j];
  cout<<endl;
}
   }
 
void PrintArray ( float a[n][m])
 {
     cout<<"\nmatrix : \n ";
 for(int i=0;i<n;i++)
  {
    cout<<endl;
    for(int j=0;j<m;j++)
    cout<<setw(5)<<a[i][j];
        }
    }
 
void Change (float a[n][m])
{
float x[n*m];
int co=0;
 for(int j=0;j<m;j+=2){
    for(int i=0;i<n;i++){
        if(a[i][j]<1){
            x[co]=a[i][j];
            co++;
        }
    }
 }
 
cout<<"\n\nMassiv x\n\n";
for(int i=0;i<co;i++) cout<<x[i]<<" ";
}
Yandex
Объявления
02.01.2011, 11:01     Функция: Переписать в одномерный массив элементы четных столбцов, значения которых меньше 1
Ответ Создать тему
Опции темы

Текущее время: 20:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru