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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Евгений Саныч
Сообщений: n/a
#1

Преобразование двумерного массива - C++

16.12.2010, 23:33. Просмотров 498. Ответов 1
Метки нет (Все метки)

Добрый вечер.
Сегодня передо мной поставили задачу следующего содержания:

Даны 2 двумерных массива X[4][4] и Y[4][4]. Необходимо найти одномерные массивы X1[4] и Y1[4], соблюдая следующие условия: - X1[i] - среднее арифметическое максимального и минимального значений элементов строки в массиве X; - Y1[i] - аналогично по массиву Y.

Пол головы сломал и никак не пойму что куда. Может кто подсказать.

Добавлено через 1 час 5 минут
Цитата Сообщение от Евгений Саныч Посмотреть сообщение
Добрый вечер.
Сегодня передо мной поставили задачу следующего содержания:

Даны 2 двумерных массива X[4][4] и Y[4][4]. Необходимо найти одномерные массивы X1[4] и Y1[4], соблюдая следующие условия: - X1[i] - среднее арифметическое максимального и минимального значений элементов строки в массиве X; - Y1[i] - аналогично по массиву Y.

Пол головы сломал и никак не пойму что куда. Может кто подсказать.
Вот мой код программы... что-то там намудрил...

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
#include <iostream.h>
#define I 4
#define J 4
 
void vvodmas( int [I][J], char );
int preobr( int [I][J] );
void pech ( int [I][J], char, int);
void main()
{
  int X[I][J],Y[I][J],X1[4],Y1[4];
  vvodmas(X,'X');
  vvodmas(Y,'Y');
  X1[4] = preobr(X);
  Y1[4] = preobr(Y);
  pech(X,'X',X1[4]);
  pech(Y,'Y',Y1[4]);
}
void vvodmas(int m[I][J], char im)
{
  int i,j;
  cout << "\nВводим массив " << im << "\n";
  for (i=0; i<I; i++)
    for ( j=0; j < J; j++)
    {
      cout << im << "[" << i << "][" << j << "] = ";
      cin >> m[i][j];
    }
}
int preobr (int x[I][J])
{
  int i, j, str, min, max;
  min = x[0][0];
  max = x[0][0];
    for (i=0; i<I; i+=1)
    if ( x[i][j] < min )
    min = x[i][j];
    {
    if ( x[i][j] > max )
    max = x[i][j];
    }
  str=i;
  return (str);
}
void pech(int x[I][J], char immas, int preobr)
{
  int i,j;
  cout <<"\n\nИсходный массив " << immas << "\n";
  for (i=0; i<I; i++)
    {
      cout << "\n";
      for (j=0; j<J; j++)
        {
    cout.width(7);     
    cout << x[i][j];
        }
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2010, 23:33     Преобразование двумерного массива
Посмотрите здесь:

Преобразование двумерного массива - C++
Есть массив: 1 4 5 7 6 4 5 3 7 8 2 7 4 1 3 4 5 6 9 1 3 2 6 8 5 На выходе получится: 7 0 0 4 0 8 7 0 4 3 7 4 3 2 1

Преобразование двумерного массива - C++
Помогите нужно написать функцию которая преобразовывает матрицу в строку по схеме например 1 2 3 4 5 6 7 8 9 в такую строку ...

Преобразование двумерного массива в одномерный - C++
Дан двумерный массив. Сформировать одномерный массив, каждый элемент которого равен сумме элементов соответствующей строки двумерного...

Преобразование двумерного массива в одномерный - C++
Помогите преобразовать данный двумерный массив в одномерный #include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include &lt;math.h&gt; using...

Преобразование двумерного массива.Подскажите пжл! - C++
Преобразовать массив S, осуществив поворот вокруг его центра на 90 градусов против часовой стрелки. =-O Помогите кто чем может!

Преобразование нединамического двумерного массива через указатели - C++
Здравствуйте. Почему эта программа крашится? #include&lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;stdlib.h&gt; int main() { int i,j,...

залить из двумерного массива данные в одномерный длиной, равной количеству всех элементов исходного массива - C++
Доброго времени суток :) Образовался новый глупый вопрос... Предположим у меня есть двухмерный массив: vertex** massiv() { ...

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

Сортировка двумерного массива - C++
Массивы

Сортировкой двумерного массива - C++
Дан файл, типа: Катя 1992 55 Аня 1993 61 Оля 1994 50 Нужно что бы отсортировало и вывело на экран, так: Аня 1993 61 Катя 1992...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
17.12.2010, 04:46     Преобразование двумерного массива #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
#include <stdio.h>
 
void randomizing(int arr[4][4]);
void print4x4(int arr[4][4]);
void count(double dest[4], int arr[4][4]);
void print(double arr[4]);
 
int main(void)
{
    int x[4][4], y[4][4];
    double x1[4], y1[4];
    
    randomizing(x);
    randomizing(y);
    
    print4x4(x);
    putchar('\n');
    print4x4(y);
    
    count(x1, x);
    count(y1, y);
    
    print(x1);
    print(y1);
    
    return 0;
}
 
#include <stdlib.h>
 
void randomizing(int arr[4][4])
{
    int i, j;
    
    for (i = 0; i < 4; i++)
        for (j = 0; j < 4; j++)
            arr[i][j] = rand() % 100;
}
 
void print4x4(int arr[4][4])
{
    int i, j;
    
    for (i = 0; i < 4; i++) {
        for (j = 0; j < 4; j++)
            printf(" %4d", arr[i][j]);
        putchar('\n');
    }
}
 
void count(double dest[4], int arr[4][4])
{
    int i, j;
    
    for (i = 0; i < 4; i++) {
        int min, max;
        min = max = arr[i][0];
        for (j = 0; j < 4; j++) {
            if (arr[i][j] < min)
                min = arr[i][j];
            if (arr[i][j] > max)
                max = arr[i][j];
        }
        dest[i] = (min + max) / 2.0;
    }
}
 
void print(double arr[4])
{
    int i;
    
    for (i = 0; i < 4; i++)
        printf(" %f", arr[i]);
    putchar('\n');
}
Код
[guest@localhost tests]$ ./t
   83   86   77   15
   93   35   86   92
   49   21   62   27
   90   59   63   26

   40   26   72   36
   11   68   67   29
   82   30   62   23
   67   35   29    2
 50.500000 64.000000 41.500000 58.000000
 49.000000 39.500000 52.500000 34.500000
[guest@localhost tests]$

один результат всегда показывает
Ответ Создать тему
Опции темы

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