Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Teemona
1 / 1 / 0
Регистрация: 03.04.2015
Сообщений: 44
1

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

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

Добрый день.
Помогите, пожалуйста.
Задана квадратная матрица размером 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)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.04.2015, 16:09
Ответы с готовыми решениями:

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

Сформировать вектор из наименьших значений элементов строк
Помогите сделать программу по заданию: Задана квадратная матрица A размером NxN (N&lt;=10),...

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

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

Найти среднее арифметическое всех наибольших элементов строк и столбцов матрицы
Дана матрица размера 7х6. Найти среднее арифметическое всех наибольших элементов строк и столбцов...

3
Teemona
1 / 1 / 0
Регистрация: 03.04.2015
Сообщений: 44
05.04.2015, 10:48  [ТС] 2
Тема все еще актуальна
0
retmas
Жарю без масла
865 / 747 / 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
Teemona
1 / 1 / 0
Регистрация: 03.04.2015
Сообщений: 44
05.04.2015, 14:50  [ТС] 4
Спасибо огромное!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.04.2015, 14:50

Найти среднее арифметическое всех наибольших элементов строк и столбцов матрицы
Дана действительная матрица размера 7х6. Найти среднее арифметическое всех наибольших элементов...

Сформировать вектор, элементы которого равны сумме элементов строк (столбцов) матриц
Дана матрица B размером 5x4. Составить программу формирования вектора, элементы которого равны...

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


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

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

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