Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
BEL9ILLI
4 / 4 / 0
Регистрация: 15.05.2009
Сообщений: 57
#1

сортировка матрицы - C++

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

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

Сортировка матрицы - C++
Рассортировать строки целочисленной матрицы по наибольшему элементу строки. Это вообще как?Помогите пожалуйста! Добавлено через 1...

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

сортировка матрицы - C++
В матрице 5*10 упорядочить элементы в каждой строке по убыванию, а строки матрицы Расположить по возратанию элементов

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

Сортировка матрицы - C++
Всем привет! Прошу помощи в решении вот такой задачи: Дана матрица (N+15)x(N+15) отсортировать главную диагональ, числа генерировать...

Сортировка матрицы - C++
Товарищи, подскажите пожалуйста, как можно решить это задание? (8 б.) В начале каждой строки частично заполненной матрицы А(m,n)...

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

Сортировка матрицы - C++
Верхнее элементы треугольника матрицы A(n × n) сортировать по возрастанию,элементов нижнего треугольника сортировать по убыванию, а...

сортировка матрицы - C++
как сортировать матрицу как спираль? то есть в центре мин элементы а по краям максимальные?...если можно сначала объясните по словам,если...

Сортировка матрицы - C++
Здравствуйте, я уже голову сломал, но как сделать перестановку строк по убыванию значений максимальных элементов строк. Т.е. дана матрица...

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

Сортировка матрицы. - C++
Имеется матрица.Переставить столбцы матрицы в порядке убывания сумм элементов. SOS


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Шерсть-На-Носу
40 / 40 / 1
Регистрация: 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;
      }
}
BEL9ILLI
4 / 4 / 0
Регистрация: 15.05.2009
Сообщений: 57
16.05.2009, 17:40  [ТС]     сортировка матрицы #3
спасибо большое!
Yandex
Объявления
16.05.2009, 17:40     сортировка матрицы
Ответ Создать тему
Опции темы

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