Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
4 / 4 / 1
Регистрация: 15.05.2009
Сообщений: 57
1

сортировка матрицы

15.05.2009, 15:36. Показов 914. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток. Задание: поменять в каждой строке максимальный и минимальный элементы на 0. Я думаю ошибка в функции void SortMatrix(int **X, const int K, const int L). Посмотрите, пожалуйста, в чем проблема.


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
110
111
112
113
114
115
116
117
118
119
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
int **CreateMatrix(const int K,const int L);
void FreeMatrix(int **X, const int L);
void SortMatrix(int **X, const int K, const int L);
void PrintMatrix(int **X, const int K, const int L);
 
void main()
{  
    int K,L;
    int i,j;
    FILE *InputFile,*OutputFile;
    char PathIn[25],PathOut[25];
    printf("Hello, dear user!"); //Здравствуйте, уважаемый пользователь!
    printf("\nThe program in each column, swap the largest and smallest modulo elements."); //Эта программа в каждом столбце меняет местами наибольший и наименьший по модулю элементы.
    printf("\nEnter a path for input file: "); //введите путь для входного файла
    scanf("%s",PathIn); 
    if ((InputFile=fopen(PathIn, "r")) == NULL )
    {
        perror(PathIn);
        exit;
    }
    fscanf (InputFile,"%d ",&K);
    fscanf (InputFile,"%d ",&L);
    int ** X=CreateMatrix(L,L); 
    for (i=0;i<K;i++)
    {
         for (j=0;j<L;j++)
            fscanf (InputFile,"%d ",&X[i][j]);
    }
    printf("Enter a path for output result file: "); //введите путь для выходного файла
    scanf("%s",PathOut);  
    OutputFile=fopen(PathOut,"w+"); 
    fprintf(OutputFile,"Initial matrix:\n");//исходная матрица
    printf("Initial matrix: \n"); //исходная матрица
    PrintMatrix(X,K,L);
    for (i=0;i<K;i++)
    {
        for (j=0;j<L;j++)
        {
            fprintf(OutputFile,"%4d",X[i][j]);
        }
        fprintf(OutputFile,"\n");
    }
    SortMatrix(X,K,L);
    fprintf(OutputFile,"\nResult matrix\n"); //результирующая матрица
    for (i=0;i<K;i++)
    {
        for (j=0;j<L;j++)
        {
            fprintf(OutputFile,"%4d",X[i][j]);
        }
        fprintf(OutputFile,"\n");
    }
    printf("As a result, have a matrix:\n"); //в итоге, получили матрицу
    PrintMatrix(X,K,L);
    fclose(OutputFile);
    fclose(InputFile);  
    FreeMatrix(X,L);
    getch();
}
 
void SortMatrix(int **X, const int K, const int L)
{
    int i,j,k,l;
    int A,B;
    int min,max;
    for (i=0;i<K;i++)
    {
        min=1;
        max=1;
        for(j=1;j<L;j++)
        {
            if (X[i][j]<X[i][min]) min=j;
            if (X[i][j]>X[i][max]) max=j;
        }
        k=X[i][min]; 
        l=X[i][max];
    }
        for (i=0;i<L;i++)
            if ((X[i][j]=k) || (X[i][j]=l)) X[i][j]=0;
}
 
void PrintMatrix(int **X, const int K, const int L)
{
    int i,j;
    for (i=0;i<K;i++)
    {
        for (j=0;j<L;j++)
        {
            printf("%5i",X[i][j]);
        }
        printf("\n");
    }
}
 
void FreeMatrix(int **X, const int K)
{
    int i;
    for(i=0; i<K; i++)
    {
        delete[] X[i];
    }
    delete[] X;
}
 
int **CreateMatrix(const int K,const int L)
{
    int i;
    int ** X = new int*[K];
    for(i=0; i<K; i++)
    {
         X[i] = new int[L];
    }
    return X;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.05.2009, 15:36
Ответы с готовыми решениями:

Сортировка матрицы
Рассортировать строки целочисленной матрицы по наибольшему элементу строки. Это вообще...

Сортировка матрицы
Нужно написать программу, которая проводит сортировку элементов матрицы b Помогите

Сортировка матрицы
Подскажите пожалуйста, как отсортировать элементы матрицы по возрастанию?.. Добавлено через 9...

Сортировка матрицы
Можете пожалуйста глянуть почему не идет задержка на екране вывода и условия типа Мне нужно...

2
48 / 48 / 8
Регистрация: 30.01.2009
Сообщений: 168
16.05.2009, 10:39 2
Код
void SortMatrix(int **X, const int K, const int L)
{
   int i, j;
   int min, max;
   for (i = 0; i < K; i++)
   {
      min = 0;
      max = 0;
      for (j = 0; j < L; j++)
      {
         if (X[i][j] < X[i][min]) min = j;
         if (X[i][j]>X[i][max]) max = j;
      }
      X[i][min]=0; 
      X[i][max]=0;
      }
}
0
4 / 4 / 1
Регистрация: 15.05.2009
Сообщений: 57
16.05.2009, 17:40  [ТС] 3
спасибо большое!
0
16.05.2009, 17:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.05.2009, 17:40
Помогаю со студенческими работами здесь

Сортировка матрицы
все нулевые элементы размещены в левой части матрицы

Сортировка матрицы
Элементы главной диагонали квадратной матрицы расположить в порядке убывания.

Сортировка матрицы
Дана:матрица чисел размером m x n, m – число строк, n – число столбцов.Выполнить сортировку (в...

Сортировка матрицы 5*5
Создать матрицу размером 5 на 5 ввод чисел в ручную. Вывести эту матрицу на экран, а потом...


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

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