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

Сформировать вектор из суммы наибольших и наименьших значений элементов столбцов матрицы

03.04.2015, 16:09. Показов 2070. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день.
Помогите, пожалуйста.
Задана квадратная матрица размером N x N (N<=10), состоящая из действительных элементов. Сформировать вектор из суммы наибольших и наименьших значений элементов столбцов.

Проблема в том, что задачку надо реализовать с помощью указателей. Где-то с ними и путаюсь

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
#include<stdio.h>
#include<math.h>
#include<locale.h>
#include <stdlib.h>
#include <time.h>
 
int main()
{
    setlocale(LC_ALL, "rus");
    srand(time);
 
    do
    {
        printf("Задана квадратная матрица  размером N x N (N<=10),  состоящая из действительных элементов.\n Сформировать вектор из суммы наибольших и наименьших значений элементов столбцов.\n");
 
        float mas[10][10];
        int i, k;
    //  float(*pMas)[10][10];
        float *pMin[10],*pMax[10],*pSum[10];
        
 
        //заполняем массив
 
        printf("________________________________________________________________\n");
        for (i = 0; i < 10; i++)
        {
            printf("\n");
            for (k = 0; k < 10; k++)
            {
                mas[i][k] = (-1000 + rand() % 2000) / 100.0;
            
                if (mas[i][k] >= 0)
                    printf(" ");
                printf("%.2f ", mas[i][k]);
 
            }
        }
        printf("\n");
        printf("________________________________________________________________\n");
 
        //начинаем искать минимальные и максимальные значения в столбцах и обрабатывать их
        float min = 0, max = 0, sum = 0;
        float vect[10];
        printf(" ");
        for (k = 0; k < 10; k++)//строки
        {
            for (i = 0; i < 10; i++)//столбцы
            {
                if (mas[i][k] > max)
                    *pMax[i] = &mas[i][k];
                if (mas[i][k] < min)
                    *pMin[i]= &mas[i][k];
            }
 
            *pSum[k] = *pMin[k] + *pMax[k];
            vect[k] = *pSum[k];
            printf("в столбце %i: min=%.2f , max=%.2f ,sum=%.2f \n ", k, *pMin, *pMax, *pSum);
            min = 0;
            max = 0;
        }
        printf("________________________________________________________________\n");
 
        //выводим полученный вектор
        printf("получили вектор: \n [");
        for (k = 0; k < 10; k++)
            printf("%.2f; ", vect[k]);
        printf("]\n");
 
    } while (getch() != 27);
 
    system("pause");
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.04.2015, 16:09
Ответы с готовыми решениями:

Сформировать вектор из суммы наибольших и наименьших значений элементов столбцов
Здравствуйте. помогите пожалуйста решить задачку. что то я запутался... Сформировать вектор из...

Сформировать вектор из суммы наибольших и наименьших значений элементов столбцов
Сформировать вектор из суммы наибольших и наименьших значений элементов столбцов.

Сформировать вектор из разностей наибольших и наименьших значений элементов строк
Разработать алгоритм и написать программу на языке Turbo Pascal. Задана матрица (двумерный массив)...

Сформировать вектор из разностей наибольших и наименьших значений элементов строк
Помогите с заданием)) Задана матрица (двумерный массив) A размером N x М , состоящая из...

3
1 / 1 / 0
Регистрация: 03.04.2015
Сообщений: 52
05.04.2015, 10:48  [ТС] 2
Тема все еще актуальна
0
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
05.04.2015, 14:22 3
Лучший ответ Сообщение было отмечено Teemona как решение

Решение

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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
#define N 10
 
int main()
{
    float mas[N][N];
    float vect[N];
    int i, k;
 
    srand(time(NULL));
    printf("Задана квадратная матрица  размером N x N (N<=10),  состоящая из действительных элементов.\n Сформировать вектор из суммы наибольших и наименьших значений элементов столбцов.\n");
 
    printf("________________________________________________________________\n");
    for (i = 0; i < N; i++) {
        printf("\n");
        for (k = 0; k < N; k++) {
            mas[i][k] = (-1000 + rand() % 2000) / 100.0;
 
            if (mas[i][k] >= 0)
                printf(" ");
            printf("%.2f ", mas[i][k]);
 
        }
    }
    printf("\n");
    printf("________________________________________________________________\n");
 
    for (k = 0; k < N; k++)
    {
        float* fp_min = &mas[0][k];
        float* fp_max = &mas[0][k];
        float* fp_cur = &mas[0][k];
        
        for (i = 1; i < N; i++)
        {
            if(*fp_min > *fp_cur)
                fp_min = fp_cur;
            if(*fp_max < *fp_cur)
                fp_max = fp_cur;
            fp_cur = &mas[i][k];
        }
        vect[k] = *fp_min + *fp_max;
    }
    printf("________________________________________________________________\n");
 
    printf("получили вектор: \n [");
    for (k = 0; k < 10; k++)
        printf("%.2f; ", vect[k]);
    printf("]\n");
    return 0;
}
Добавлено через 10 минут
там только строку 43 поставьте не в конец а в начало цикла
C
1
2
3
4
5
6
7
8
        for (i = 1; i < N; i++)
        {
            fp_cur = &mas[i][k];
            if(*fp_min > *fp_cur)
                fp_min = fp_cur;
            if(*fp_max < *fp_cur)
                fp_max = fp_cur;
        }
1
1 / 1 / 0
Регистрация: 03.04.2015
Сообщений: 52
05.04.2015, 14:50  [ТС] 4
Спасибо огромное!
0
05.04.2015, 14:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.04.2015, 14:50
Помогаю со студенческими работами здесь

Сформировать линейный массив из суммы наибольших и наименьших значений элементов строк
Задан прямоугольный массив. Сформировать линейный массив из суммы наибольших и наименьших значений...

Сформировать вектор из наибольших по модулю элементов столбцов матрицы
Сформулировать одномерный массив, каждый элемент которого равен наибольшему по модулю элементу...

Сформировать массив из разностей наибольших и наименьших значений элементов строк матрицы
Разработать алгоритмы и программы решения задач: а) сформировать одномерный динамический массив из...

Найти сумму наибольших значений элементов строк матрицы, а также произведение наименьших элементов её столбцов
Помогите, пожалуйста. Буду очень признательна. Дана действительная матрица размера MxN. Найти...


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

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

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