Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
WINT-er
2 / 2 / 0
Регистрация: 07.05.2010
Сообщений: 32
1

Дана квадратная матрица. Найдите ...

12.05.2010, 23:59. Просмотров 828. Ответов 13
Метки нет (Все метки)

Есть такая задача)

Дана квадратная матрица. Найдите в каждой её строке наименьший элемент и вычтите его из всех элементов строки. Затем найдите в каждом столбце наименьший элемент и вычтите его из всех элементов столбца. Проверьте, верно ли, что после данных преобразований в каждой строке и каждом столбце матрицы находится только один нулевой элемент.

очень нужна) пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2010, 23:59
Ответы с готовыми решениями:

дана квадратная матрица А
Дана квадратная матрица А порядка n. Составить программу,которая находит...

дана квадратная матрица
Помогите пжл с задачей! дана квадратная матрица А, размером nxn. сформировать...

дана квадратная матрица
Помогите пжл с задачей! дана квадратная матрица А, размером nxn. сформировать...

Дана квадратная матрица
прога на Си помогите решить дана квадратная матрица порядка N (элементы не...

Дана квадратная матрица порядка N
Дана квадратная матрица порядка N. Составить программу, транспонирующую эту...

13
GrihaI
13 / 13 / 3
Регистрация: 23.04.2010
Сообщений: 31
13.05.2010, 00:57 2
числа только положительные?
Сколько раз перебирать матрицу 2, или больше?
0
WINT-er
2 / 2 / 0
Регистрация: 07.05.2010
Сообщений: 32
13.05.2010, 01:25  [ТС] 3
а, да, забыл
Число элементов массива задаётся пользователем. Элементы могут заполняться как вручную, так и случайным образом.
сколько раз - без разницы,я думаю
0
neske
1527 / 894 / 192
Регистрация: 26.03.2010
Сообщений: 3,074
13.05.2010, 07:58 4
Щас убегаю, не успел сделать с проверкой на нули, но остальное вот, вроде бы правильно:
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
#include <iostream>
#include <iomanip>
#include <ctime>
 
int main ()
{
    const int Row=6;
    const int Column=8;
    int i, j;
    int MAS[Row][Column];
    int min_Row[Row];
    int min_Column[Column];
 
    std::cout << "Start matrix:\n";
    srand(time(NULL));
    for (i=0; i<Row; i++)
    {
        for (j=0; j<Column; j++) {
            MAS[i][j]=rand()%50;
            std::cout << std::setw(3) << MAS[i][j]; }
        std::cout << std::endl;
    }
    std::cout << std::endl;
 
    for (i=0; i<Row; i++)
        for (j=0; j<Column; j++)
            min_Row[i]=*std::min_element(MAS[i], MAS[i]+Column); // ищем минимальный элемент в строках.
 
    for (j=0; j<Column; j++)
        for (i=0; i<Row; i++)
            min_Column[i]=*std::min_element(MAS[j], MAS[j]+Row); // ищем минимальный элемент в столбцах.
 
    for (i=0; i<Row; i++) // вычитаем.
        for (j=0; j<Column; j++)
            MAS[i][j]-=min_Row[i];
    for (j=0; j<Column; j++)
        for (i=0; i<Row; i++)
            MAS[i][j]-=min_Column[j]; // вычитаем.
 
    return 0;
}
1
GrihaI
13 / 13 / 3
Регистрация: 23.04.2010
Сообщений: 31
13.05.2010, 13:16 5
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
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
void show(int**A,int size)
{
    int i,j;    
    for(i=0;i<size;i++)
    {
        for(j=0;j<size;j++)
            printf("%d\t",A[i][j]);
        printf("\n");
    }
    printf ("----------------------------\n");
}
void delX(int **A,int size,int min,int pos)
{
    int i;
    for(i=0;i<size;i++)
        A[pos][i]-=min;
}
void delY(int **A,int size,int min,int pos)
{
    int i;
    for(i=0;i<size;i++)
        A[i][pos]-=min;
}
void main()
{
    int i,j,size,min;
    int **array_a;
    srand (time (NULL));
    printf ("Введите размер массива: ");
    scanf("%d",&size);
    array_a=(int *)malloc(size*sizeof(int));//создаем массив указателей для хранения адресов столбцов
    for(i=0;i<size;i++)
        array_a[i]=(int *)malloc(size*sizeof(int));//создаем size столбцов высотой size
    for(i=0;i<size;i++)
        for(j=0;j<size;j++)
            array_a[i][j]=rand()%10;
    
    printf ("Исходный массив:\n");
    show(array_a,size);
    for(i=0;i<size;i++)
    {
        min=array_a[i][0];
        for(j=0;j<size;j++)
        {
            if(array_a[i][j]<min)
                min=array_a[i][j];
        }
        delX(array_a,size,min,i);
    }
    printf ("Массив после вычитанья по строкам:\n");
    show(array_a,size);
    for(i=0;i<size;i++)
    {
        min=array_a[0][i];
        for(j=0;j<size;j++)
        {
            if(array_a[j][i]<min)
                min=array_a[j][i];
        }
        delY(array_a,size,min,i);
    }
    printf ("Массив после вычитанья по столбцам:\n");
    show(array_a,size);
    for(i=0;i<size;i++)
    {
        min=0;
        for(j=0;j<size;j++)
            if(!array_a[i][j])min++;
        printf ("В %d сроке %d нулей.\n",i+1,min);
    }
    for(i=0;i<size;i++)
    {
        min=0;
        for(j=0;j<size;j++)
            if(!array_a[j][i])min++;
        printf ("В %d столбце %d нулей.\n",i+1,min);
    }
}
1
WINT-er
2 / 2 / 0
Регистрация: 07.05.2010
Сообщений: 32
14.05.2010, 20:31  [ТС] 6
в первой ошибка - [C++ Error] Unit1.cpp(35): E2316 'min_element' is not a member of 'std'

во второй
[C++ Error] Unit1.cpp(42): E2034 Cannot convert 'int *' to 'int * *'

з.ы чем отличаются они друг от друга?
0
neske
1527 / 894 / 192
Регистрация: 26.03.2010
Сообщений: 3,074
14.05.2010, 20:37 7
Подключите библиотеку <algorithm>
0
GrihaI
13 / 13 / 3
Регистрация: 23.04.2010
Сообщений: 31
14.05.2010, 20:39 8
У меня Microsoft Visual C++ 2008 компилит без проблем
1
Genius Ignat
1241 / 779 / 108
Регистрация: 16.09.2009
Сообщений: 2,014
14.05.2010, 20:50 9
[C++ Error] Unit1.cpp(42): E2034 Cannot convert 'int *' to 'int * *'
Тут нет ни какой ошибки.
Глючный у вас компилятор, ошибка тут:
C++
1
array_a=(int *)malloc(size*sizeof(int));
Надо так:
C++
1
 array_a=(int **)malloc(size*sizeof(int*));
Добавлено через 4 минуты
У меня Microsoft Visual C++ 2008 компилит без проблем
сказки говоришь, 3 - ошибки выдает.

Добавлено через 1 минуту
Точнее 1- ошибку, которую я назвал и два предупреждения.
0
GrihaI
13 / 13 / 3
Регистрация: 23.04.2010
Сообщений: 31
14.05.2010, 21:00 10
Если я говорю что компилит без проблем, то так оно и есть.
1
Миниатюры
Дана квадратная матрица. Найдите ...  
Genius Ignat
1241 / 779 / 108
Регистрация: 16.09.2009
Сообщений: 2,014
14.05.2010, 21:33 11
Если я говорю что компилит без проблем, то так оно и есть.
Либо у вас студия гавеная либо решили поиздеваться.
Рассказывать суть ошибки я не буду, ибо ван не интересно,
подобные ошибки видно и без компилятора.
Если догадаетесь в чем суть ошибки я за вас буду рад.
0
CyBOSSeR
Эксперт С++
2310 / 1683 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
14.05.2010, 21:42 12
Genius Ignat, все просто, посмотри на расширения файла у GrihaI - .c. Содержание такого файла будет компилироваться как код на Си и ошибка, хоть и по факту останется ошибкой, но компилятор выдаст лишь предупреждение:
warning C4047: =: 'int **' отличается по уровням косвенного обращения от 'int *'
1
Genius Ignat
1241 / 779 / 108
Регистрация: 16.09.2009
Сообщений: 2,014
14.05.2010, 22:15 13
Либо у вас студия гавеная либо решили поиздеваться.
Рассказывать суть ошибки я не буду, ибо ван не интересно,
Извиняюсь за это, я и вправду думал что Студия врет, или кто решил поиздеваться сегодня.
0
CyBOSSeR
Эксперт С++
2310 / 1683 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
14.05.2010, 22:22 14
Цитата Сообщение от GrihaI Посмотреть сообщение
Если я говорю что компилит без проблем, то так оно и есть.
Компилить то компилит, но ошибка ошибкой остается. Просто повезло, что размер int'а на твоей машине равен размеру указателя. Исправь ошибку, как советовал Genius Ignat.
1
14.05.2010, 22:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.05.2010, 22:22

Дана действительная квадратная матрица
Программы для dev c++ 1. Дана действительная квадратная матрица порядка n....

Дана целочисленная квадратная матрица
Дана целочисленная квадратная матрица. Найдите наибольший элемент...

Дана действительна квадратная матрица
Здравствуйте помогите решить задачу, пожалуйста. Дана действительная квадратная...


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

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

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