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

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

06.02.2010, 21:13. Просмотров 2534. Ответов 8
Метки нет (Все метки)

Составить блок-схему алгоритма и программу на языке С согласно с заданием, полученным от преподавателя по таблице 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


сама програма є, але тут шось з зміннними

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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#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();
}
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2010, 21:13
Ответы с готовыми решениями:

Упорядочить элементы строк матрицы по возрастанию их значений методом обмена
Упорядочить элементы строк матрицы по возрастанию их значений методом обмена fi(aij)-сумма...

Строки матрицы упорядочить по возрастанию методом линейного выбора с подсчетом
Если сумма элементов матрицы А размерности nxn больше удвоенной суммы максимального и минимального...

Упорядочить элементы чётных строк матрицы по убыванию, методом выбора
Задание: В матрице размером 12х8 упорядочить элементы чётных строк по убыванию, методом выбора. ...

Перестановкой строк и столбцов упорядочить по возрастанию элементы главной диагонали квадратной матрицы
Заполнить матрицу размером N×M целыми случайными числами, распределенными в диапазоне от a до b....

Упорядочить массив по возрастанию методом выбора
Дан массив вещественных чисел, состоящих из N(20) элементов. Упорядочить ее по возрастанию методом...

8
novi4ok
553 / 507 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
06.02.2010, 22:22 2
3 Упорядочить элементы столбцов матрицы по возрастанию их значений методом выбора fi(aij) - сумма элементов в каждом рядке матрицы; F(fi(aij)) - среднее геометрическое значение fi(aij)
C++
1
2
3
4
5
   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
что ты ожидаешь в результате? это?

-2 -7 -4 -9 -21
1 0 -1 -3 -10
2 0 4 -1 0
13 7 33 16 11
78 61 60 42 16


? а что это за метод такой, объясни на пальцах
Оригинал
3 Впорядкувати елементи стовпців матриці за зростанням їх значень методом вибору fi(aij)-сума елементів у кожному рядку матриці; F(fi(aij))-середнє геометричне значення fi(aij)
C++
1
2
3
4
5
   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
що ти очікуєш у результаті? таке?

-2 -7 -4 -9 -21
1 0 -1 -3 -10
2 0 4 -1 0
13 7 33 16 11
78 61 60 42 16


? а що то за метод такий, поясни "на пальцях"
0
M128K145
Эксперт JavaЭксперт С++
8340 / 3561 / 420
Регистрация: 03.07.2009
Сообщений: 10,708
07.02.2010, 00:08 3
oleghj, уточните конкретнее вашу проблему, с какими именно переменными проблема и по возможности пишите на русском языке или воспользуйтесь переводчиком
0
oleghj
0 / 0 / 0
Регистрация: 06.02.2010
Сообщений: 4
07.02.2010, 10:17  [ТС] 4
Цитата Сообщение от M128K145 Посмотреть сообщение
oleghj, уточните конкретнее вашу проблему, с какими именно переменными проблема и по возможности пишите на русском языке или воспользуйтесь переводчиком
попробуйте запустить програму и вы сами всьо увидете
0
07.02.2010, 10:17
novi4ok
553 / 507 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
07.02.2010, 13:26 5
что ты хотел этим сделать?

C++
1
scanf_s("%d", element[i][j]);
наверное, вот так хотел?

C++
1
scanf_s("%d", &element[i][j]);
0
SerЁga
32 / 32 / 16
Регистрация: 18.08.2009
Сообщений: 93
07.02.2010, 13:30 6
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Я вроде подправил.
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#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();
}
0
oleghj
0 / 0 / 0
Регистрация: 06.02.2010
Сообщений: 4
07.02.2010, 14:02  [ТС] 7
При компиляции выводет ошыбку:
C
1
`main' must return `int'
0
novi4ok
553 / 507 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
07.02.2010, 14:11 8
Цитата Сообщение от oleghj Посмотреть сообщение
При компиляции выводет ошыбку:
C
1
`main' must return `int'
естественно, если у тебя определенный тип приложения. допиши последним оператором в main:

C++
1
return 0;
и перепиши декларацию майна:
C++
1
int main(int argc, char* argv[])
0
oleghj
0 / 0 / 0
Регистрация: 06.02.2010
Сообщений: 4
09.02.2010, 18:10  [ТС] 9
не могли бы вы вписа ето в програграму, потому что я только начал вывчать Си
0
09.02.2010, 18:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2010, 18:10

Упорядочить матрицу по возрастанию методом выбора
Дан массив вещественных чисел, состоящих из N(20) элементов. Упорядочить ее по возрастанию методом...

Упорядочить одномерный числовой массив по возрастанию методом выбора
Упорядочить одномерный числовой массив по возрастанию методом выбора. При этом выбирается...

Упорядочить методом выбора элементы массива по убыванию модулей
Дан целочисленный массив A(n) с элементами, сгенерированными случайными числами в диапазоне (-20,...


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

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

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