Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
kitten
0 / 0 / 0
Регистрация: 14.12.2008
Сообщений: 21
#1

Удаление всех строк содержащих минимальный элемент матрицы. - C++

19.12.2008, 21:34. Просмотров 708. Ответов 2
Метки нет (Все метки)

Задание:
Составить программу обработки матрицы.
Удаление всех строк содержащих минимальный элемент матрицы.
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
#include <stdio.h>
 
void Min(int** m, int n)
{
    int j=0, i=0, y, k, MiEl=m[0][0];
   // int min[n];
    for (i; i<n; i++)
      for (j; j<n; j++)
      {
        if (m[i][j] < MiEl)
    //min[k]=m[i][j];
            MiEl=m[i][j];
    //if (m[i][j] < min[k])
    //min[k]=m[i][j];
    y=i;
      }
  }
 
void Delete(int** m, int n, int y)
{
    while(y==i)
    {
        int i, j;
        for(j=0, j<=n, j++)
        {
            delete m[i][j];
        }
    }
}
 
int main()
{
    int N, y;
    scanf("%d", &N);
 
    int** m=new int*[N];
    for (int i=0; i<N; i++)
        m[i]=new int[N];
 
    for (int i=0; i<N; i++)
        for (int j=0; j<N; j++)
            scanf("%d", &m[i][j]);
 
    Min(m, N);
    printf("%d",m[i][j]);
 
    for (int i=0; i<N; i++)
    delete [] m[i];
    delete [] m;
 
    return 0;
}
ошибку не вижу( помогите найти, пожалуйста!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2008, 21:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Удаление всех строк содержащих минимальный элемент матрицы. (C++):

Определить количество строк матрицы, содержащих хотя бы один нулевой элемент - C++
Вот есть задача: Данная целочисленная прямоугольная матрица. определить  количество строк, содержащих хотя бы один нулевой элемент; ...

Определить количество строк матрицы, содержащих хотя бы один нулевой элемент - C++
помогите плиз надо сделать на С Дана целочисленная прямоугольная матрица. Определить: 1) количество строк, содержащих хотя бы один...

Определить количество строк матрицы, содержащих хотя бы один нулевой элемент - C++
приветствую) в общем надо срочно плз решить тему): Дана целочисленная квадратная матрица. 1. определить количество строк, содержащих...

Определить количество строк матрицы, содержащих хотя бы один нулевой элемент. - C++
Помогите! нужно решить задание: Дана целочисленная квадратная матрица. Определить количество строк, содержащих хотя бы один нулевой элемент.

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

Номер первой из строк матрицы, содержащих хотя бы один положительный элемент - C++
Дана целочисленная квадратная матрица. Определить: 1)номер первой из строк, содержащих хотя бы один положительный элемент;

2
FOLKEN
21 / 20 / 3
Регистрация: 03.12.2008
Сообщений: 85
20.12.2008, 02:21 #2
про ошибки в синтаксисе вам компилятор расскажет, а вот насчет самого задания... оно не так просто как кажется - ибо минимальный эл-т может быть в нескольких строках, и при удалении строк соответственно уменьшается размер матрицы. Что подразумевается под "удалить строки" ? Можно ли завести другую матрицу? или надо освободить память из-под старой?)
0
accept
4828 / 3249 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
20.12.2008, 03:45 #3
предположительно сортировка пустых строк не требуется, т.к. время уйдёт одинаковое

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
#include <stdio.h>
#include <stdlib.h>
 
#define M  3    /* количество строк    */
#define N  4    /* количество столбцов */
 
/* создаёт матрицу M x N, заполняет её и удаляет строки с наименьшим элементом */
main()
{
    int **mtxcreat(int, int);
    int mtxfill(int **, int, int);
    long mtxmin(int **, int, int);
    void mtxrdel(int **, int, int, long),
         mtxprint(int **, int, int),
         mtxfree(int **, int);
    int **m;
    int nrows = M, ncells = N, i, j;
    
    if ((m = mtxcreat(nrows, ncells)) == NULL)
        return 1;
    if (mtxfill(m, nrows, ncells) > 0) {
        mtxfree(m, nrows);
        return 2;
    }    
    putchar('\n');    
    mtxprint(m, nrows, ncells);
    putchar('\n');    
    mtxrdel(m, nrows, ncells, mtxmin(m, nrows, ncells));
    mtxprint(m, nrows, ncells);
    putchar('\n');    
    mtxfree(m, nrows);
    return 0;
}
 
/* mtxcreat:  создаёт матрицу размерности m x n */
int **mtxcreat(int m, int n)
{
    int **mtx, i;
    
    if ((mtx = calloc(m, sizeof(int *))) == NULL)
        return NULL;
    for (i = 0; i < m; i++)
        if ((mtx[i] = calloc(n, sizeof(int))) == NULL) {
            while (--i >= 0)
                free(mtx[i]);
            free(mtx);
            return NULL;
        }
    return mtx;    
}
 
/* mtxfill:  запрашивает числа для матрицы и записывает их */
int mtxfill(int **mtx, int m, int n)
{
    int i, j;
    
    for (i = 0; i < m; i++)
        for (j = 0; j < n; j++) {
            printf("M %d %d : ", i, j);
            if (scanf("%d", &mtx[i][j]) != 1)
                return 1;
        }
    return 0;
}
 
/* mtxmin:  находит минимальный элемент матрицы */
long mtxmin(int **mtx, int m, int n)
{
    int i, j;
    long min = mtx[0][0];
    
    for (i = 0; i < m; i++)
        for (j = 0; j < n; j++)
            if (mtx[i][j] < min)
                min = mtx[i][j];
    return min;
}
 
/* mtxrdel:  удаляет строку матрицы в которой элемент */
void mtxrdel(int **mtx, int m, int n, long elem)
{
    int i, j;
    
    for (i = 0; i < m; i++)
        for (j = 0; j < n; j++)
            if (mtx[i][j] == elem) {
                free(mtx[i]);
                mtx[i] = NULL;
                break;
            }    
}
 
/* mtxprint:  выводит матрицу на экран */
void mtxprint(int **mtx, int m, int n)
{
    int i, j;
    
    for (i = 0; i < m; i++)
        if (mtx[i] != NULL)
            for (j = 0; j < n; j++)
                printf(" %3d%s", mtx[i][j], j == n-1 ? "\n" : "");
}
 
/* mtxfree:  удаляет матрицу, освобождая память */
void mtxfree(int **mtx, int m)
{
    int i;
    
    for (i = 0; i < m; i++)
        free(mtx[i]);
    free(mtx);
}
kitten, всегда когда объявляешь переменные выноси их вверх (верх имеется в виду верх блока в котором они создаются блок - область в фигурных скобках, заголовок цикла ещё не блок, два раза в одном блоке объявлять переменную нельзя, внутренний блок считается подблоком отдельным, но и уничтожаться они будут после его завершения),
большими буквами объявляются определения препроцессора, маленькими переменные, одни и те же имена для функций и переменных или имена различающиеся только регистром тоже не есть гуд

update:
терь всё по функциям
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.12.2008, 03:45
Привет! Вот еще темы с ответами:

Решить уравнение p*x2+d*x+r=0, где p - минимальный элемент матрицы A; d –минимальный элемент матрицы B; r - минимальный элемент матрицы C. - C++
Заданы три матрицы A, B, C. Решить уравнение p*x2+d*x+r=0, где p - минимальный элемент матрицы A; d –минимальный элемент матрицы B; r -...

Определить номер первой из строк матрицы, содержащих хотя бы один положительный элемент - C++
Дана целочисленная квадратная матрица. Определить: * номер первой из строк, содержащих хотя бы один положительный элемент; Каждый пункт...

Найти номер первой из строк матрицы, содержащих хотя бы один положительный элемент - C++
Уплотнить заданную матрицу , удаляя из неё строки и столбцы , заполненные нулями. Найти номер первой из строк , содержащих хотя бы один...

Найти минимальный элемент среди максимальных элементов строк матрицы - C++
двумерный массив. Размерность матрицы задаётся пользователем. Найти минимальный элемент среди максимальных элементов строк матрицы....


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

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

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