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

Формулировка задачи:

Добрый день. Помогите, пожалуйста. Задана квадратная матрица размером N x N (N<=10), состоящая из действительных элементов. Сформировать вектор из суммы наибольших и наименьших значений элементов столбцов. Проблема в том, что задачку надо реализовать с помощью указателей. Где-то с ними и путаюсь
#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; }

Код к задаче: «Сформировать вектор из суммы наибольших и наименьших значений элементов столбцов матрицы - C (СИ)»

textual
#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;
}

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

5   голосов, оценка 3.600 из 5


СОХРАНИТЬ ССЫЛКУ