Упорядочить элементы столбцов матрицы по возрастанию их значений методом выбора - C (СИ)

Узнай цену своей работы

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

Составить блок-схему алгоритма и программу на языке С согласно с заданием, полученным от преподавателя по таблице 1: Заданную прямоугольную матрицу A={aij} отсортировать по указанному алгоритму; Для отсортированной матрицы найти значения функции F(fi(aij)); алгоритм сортировки и вычисления fi(aij) оформить в виде функций; Элементы матрицы вводить с клавиатуры; Программа должна вывести на экран отсортированную матрицу, все значения fi(aij) и значения функции F(fi(aij)). Таблица 1 3 Упорядочить элементы столбцов матрицы по возрастанию их значений методом выбора fi(aij) - сумма элементов в каждом рядке матрицы; F(fi(aij)) - среднее геометрическое значение fi(aij) 2 0 33 -1 -21 78 7 -4 -3 11 -2 -7 -1 -9 0 13 61 60 42 -10 1 0 4 0 16 сама программа есть, но тут что-то с переменнми
Скласти блок-схему алгоритму та програму мовою Cі згідно з завданням, отриманим від викладача за табл. 1: задану прямокутну матрицю A={aij} відсортувати за вказаним алгоритмом; для відсортованої матриці знайти значення функції F(fi(aij)); алгоритм сортування і обчислення fi(aij) оформити у вигляді функції; елементи матриці вводити з клавіатури; програма повинна вивести на екран відсортовану матрицю, всі значення fi(aij) та значення функції F(fi(aij)). Таблиця 1 3 Впорядкувати елементи стовпців матриці за зростанням їх значень методом вибору fi(aij)-сума елементів у кожному рядку матриці; F(fi(aij))-середнє геометричне значення fi(aij) 2 0 33 -1 -21 78 7 -4 -3 11 -2 -7 -1 -9 0 13 61 60 42 -10 1 0 4 0 16 сама програма є, але тут шось з зміннними
#include<stdio.h>
#include"stdafx.h"
#include<math.h>
#include<conio.h>
#define n 5
void vvid(int element[n][n]);
void metod_vibory(int element[n][n]);
void suma(int element[n][n]);
void heometruchne(int element[n][n]);
void main()
{
    int element[n][n];
    vvid(element);
    metod_vibory(element);
    suma(element);
    heometruchne(element);
}
    /*ввід матриці*/
    /*ввод матрицы*/
        void vvid(int element[n][n])
        {
    int i,j,k,f,pos;
    for (i=0; i<n; i++)
    {
        for (j=0; j<n; j++)
        {
        printf("element[%d][%d] =", i+1, j+1);
        scanf_s("%d", element[i][j]);
    }
}
for (i=0; i<n; i++)
    {
    for (j=0; j<n; j++)
    printf("   %i\t",    element[i][j]);
    printf("\n");
    }
   _getch();
}
 
/* впорядкування елементів її стовпців за зростаням їхніх значень методом вибору */
/* сортировка элементов ее столбцов по возрастанию их значений методом выбора */
 
    void metod_vibory(int element[n][n])
    {
        int i,j,pos,p,f;
          for (j=0; j<n; j++)
        for (i=0; i<n-1; i++)
        {
            int pos=i;
            for(p=i+1; p<n; p++)
            if(element[pos][j] > element[p][j]);
                pos=p;
         f=element[pos][j];
        element[pos][j]=element[i][j];
            element[i][j]=f;
        }
        for(i=0; i<n; i++)
        {
            for(j=0; j<n; j++)
            printf("%i\t",  element[i][j]);
            printf("\n");
        }
        _getch();
    }
    /* обчисленя fi(aij)-суми елементів у кожному рядку матриці */
    /* вычисление fi(aij) - суммы элементов в каждом рядке матрицы */
void suma(int element[n][n])
    {
    int i, j;
    double suma;
 
    suma=0;
    for(i=0; i<n; i++) 
    {
        {
            for(j=0; j<n; j++)
            suma=suma+element[i][j];
        }
        printf("   suma elemetiv = %if",suma);
        printf("\n");
        suma=0;
    }
    _getch();
}
/* обчисленя F(fi(aij))-середнього геометричного значення fi(aij)*/
/* вычисление F(fi(aij)) - среднего геометричного значения fi(aij)*/
void heometruchne(int element[n][n])
    {
        int i,j;
        double dobutok, serheom;
        dobutok=i;
        {
        for(i=0; i<n; i++);
        {
            {
            for(j=0; j<n; j++)
            dobutok=dobutok*element[i][j];
            serheom=pow(dobutok, (double)i/n);
            
            }
        printf(" seredne heometrichne znachennya = %lf",serheom);
        printf("\n");
        dobutok=i;
        }
        }   
        _getch();
}

Решение задачи: «Упорядочить элементы столбцов матрицы по возрастанию их значений методом выбора»

textual
Листинг программы
#include<stdio.h>
#include<math.h>
#include<conio.h>
#define n 5
void vvid(int element[n][n]);
void metod_vibory(int element[n][n]);
void suma(int element[n][n]);
void heometruchne(int element[n][n]);
void main()
{
    int element[n][n];
    vvid(element);
    metod_vibory(element);
    suma(element);
    heometruchne(element);
}
/*ввід матриці*/
/*ввод матрицы*/
void vvid(int element[n][n])
{
    int i,j,k,f,pos;
    for (i=0; i<n; i++)
    {
        for (j=0; j<n; j++)
        {
            printf("element[%d][%d] =", i+1, j+1);
            scanf_s("%d", &element[i][j]);///необходим & перед element[i][j]
        }
    }
    for (i=0; i<n; i++)
    {
        for (j=0; j<n; j++)
            printf("   %i\t",    element[i][j]);
        printf("\n");
    }
    _getch();
}
 
/* впорядкування елементів її стовпців за зростаням їхніх значень методом вибору */
/* сортировка элементов ее столбцов по возрастанию их значений методом выбора */
 
void metod_vibory(int element[n][n])
{
    int i,j,pos,p,f;
    for (j=0; j<n; j++)
        for (i=0; i<n-1; i++)
        {
            int pos=i;
            for(p=i+1; p<n-1; p++)
                if(element[pos][j] > element[p][j])
                { //ошибка что-бы в после проверки if выполнялоси несколько команд надо {} 
 
                pos=p;
            f=element[pos][j];
            element[pos][j]=element[i][j];
            element[i][j]=f;
                }
        }
        for(i=0; i<n; i++)
        {
            for(j=0; j<n; j++)
                printf("%i\t",  element[i][j]);
            printf("\n");
        }
        _getch();
}
/* обчисленя fi(aij)-суми елементів у кожному рядку матриці */
/* вычисление fi(aij) - суммы элементов в каждом рядке матрицы */
void suma(int element[n][n])
{
    int i, j;
    double suma;
 
    suma=0;
    for(i=0; i<n; i++) 
    {
        {
            for(j=0; j<n; j++)
                suma=suma+element[i][j];
        }
        printf("   suma elemetiv = %lf",suma);//вывод double используется %lf
        printf("\n");
        suma=0;
    }
    _getch();
}
/* обчисленя F(fi(aij))-середнього геометричного значення fi(aij)*/
/* вычисление F(fi(aij)) - среднего геометричного значения fi(aij)*/
void heometruchne(int element[n][n])
{
    int i=1,j;
    double dobutok, serheom;
    dobutok=i; //используется неинициализированная переменная
    {
        for(i=0; i<n; i++);
        {
            {
                for(j=0; j<n; j++)
                    dobutok=dobutok*element[i][j];
                serheom=pow(dobutok, (double)i/n);
 
            }
            printf(" seredne heometrichne znachennya = %lf",serheom);
            printf("\n");
            dobutok=i;
        }
    }       
    _getch();
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.9 из 5
Похожие ответы