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

Обработка двухмерных массивов - C++

Восстановить пароль Регистрация
 
Анчел
0 / 0 / 0
Регистрация: 31.05.2012
Сообщений: 5
02.06.2012, 17:47     Обработка двухмерных массивов #1
Дана матрица А (5*5) нецелых элементов.
-3.8 0 5.3 4.5 0.5
0.2 -1.3 0 -8.5 3.5
-1.1 1.8 5.1 -8.2 0.32
0 -0.3 0 -1.28 0.52
-0.3 0.5 1.8 -7.3 5.5
Разработайте алгоритм обработки элементов двухмерного массива.
СХЕМУ АЛГОРИТМА ИЗОБРАЗИТЕ С ПОМОЩЬЮ СИМВОЛА ПОДГОТОВКИ.
Напишите программу на алгоритмическом языке в соответствии со схемой алгоритма.

После окончания цикла обработки массива организуйте вывод массива и результатов обработки массива. Выдача в этом случае, например, может иметь вид:
ИСХОДНАЯ МАТРИЦА:
15.583 19.287 28.385 45.621 39.728
5.456 -8.087 3.897 4.890 -8.789
34.008 56.905 -5.789 21.908 94.007
56.345 -6.098 0.087 0.000 -6.098
-8.000 0.000 5.089 8.789 0.000
ПОЛУЧЕННЫЕ РЕЗУЛЬТАТЫ:
МАХ В 1 СТРОКЕ= 45.621
МАХ В 2 СТРОКЕ= 5.456
МАХ В 3 СТРОКЕ= 94.007
МАХ В 4 СТРОКЕ= 56.345
МАХ В 5 СТРОКЕ= 8.789
На языке СИ
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
02.06.2012, 21:18     Обработка двухмерных массивов #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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <memory.h>
#include <locale.h>
 
#define N 5
 
int main()
{
    setlocale(LC_ALL,"Russian");
 
    static double X[N][N] = { { 15.583, 19.287, 28.385, 45.621, 39.728 },
                              { 5.456, -8.087, 3.897, 4.890, -8.789 },
                              { 34.008, 56.905, -5.789, 21.908, 94.007 },
                              { 56.345, -6.098, 0.087, 0.000, -6.098 },
                              { -8.000, 0.000, 5.089, 8.789, 0.000 } };
 
    printf("ИСХОДНАЯ МАТРИЦА\n");
 
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
            printf("%6.3f ",X[i][j]);
        printf("\n");
    }
 
    printf("ПОЛУЧЕННЫЕ РЕЗУЛЬТАТЫ\n");
 
    for (int q = 0; q < N; q++)
    {
        int max_i = 0;
        for (int t = 0; t < N; t++)
            max_i = (X[q][t] > X[q][max_i]) ? t : max_i;
        printf("MAX В %d СТРОКЕ = %6.3f\n",q+1,X[q][max_i]);
    }
 
    _getch();
}
http://liveworkspace.org/code/65bc43...e257e2447dbe68
Анчел
0 / 0 / 0
Регистрация: 31.05.2012
Сообщений: 5
02.06.2012, 22:37  [ТС]     Обработка двухмерных массивов #3
А не подскажете как Составить программу для обработки исходной матрицы Определить максимальный элемент матрицы А, номер его строки и номер его столбца и сформировать одномерный массив Х из элементов той строки, в которой расположен максимальный элемент.
Jazz411
85 / 33 / 3
Регистрация: 12.03.2011
Сообщений: 234
Записей в блоге: 2
03.06.2012, 02:45     Обработка двухмерных массивов #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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <iostream>
using namespace std;
 
int main(void)
{
    int n=0, _maxElement_i=0, _maxElement_j=0;
 
    cout << "Enter the dimension of the matrix" << endl;
 
    cin >> n;
 
    double **A, *X;
 
    A = new double *[n];
 
    for(int i=0; i<n; i++)
    {
        A[i] = new double[n];
 
        for(int j=0; j<n; j++)
        {
            cout << "Enter digit" << endl;
            cin >> A[i][j];
        }
    }
    
    for(int i=0; i<n; i++)
        for(int j=0; j<n; j++)
        {
            if(A[i][j] > A[_maxElement_i][_maxElement_j])
            {
                _maxElement_i = i;
                _maxElement_j = j;
            }
        }
 
    X = A[_maxElement_i];
 
    cout << "Result:" << endl;
 
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<n; j++)
        {
            cout << A[i][j] << '\t';
        }
        
        cout << endl;
    }
 
    cout << "The maximum element is equal to " << A[_maxElement_i][_maxElement_j] << ", at the intersection of " << _maxElement_i + 1 << " columns and " << _maxElement_j + 1 << " rows." << endl;
 
    cout << "Mass X:" << endl;
 
    for(int i=0; i<n; i++)
        cout << X[i] << '\t';
 
    cout<<endl;
 
    for(int i=0; i<n; i++)
        delete A[i];
 
    delete[] A;
 
    return 0;
}
Yandex
Объявления
03.06.2012, 02:45     Обработка двухмерных массивов
Ответ Создать тему
Опции темы

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