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

Проверить, есть ли в матрице хотя бы одна строка, содержащая отрицательный элемент

06.12.2016, 18:40. Просмотров 313. Ответов 7
Метки нет (Все метки)

Проверить, есть ли в матрице (МАТРИЦУ ВВОДИТЬ ВРУЧНУЮ) хотя бы одна строка, содержащая отрицательный элемент, и найти ее номер. Все элементы столбца с таким же номером уменьшить вдвое.
без string.h и math.h
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2016, 18:40
Ответы с готовыми решениями:

Проверить, есть ли в матрице хотя бы одна строка, содержащая отрицательный элемент
Проверить, есть ли в матрице хотя бы одна строка, содержащая отрицательный элемент, и найти ее...

Проверить, есть ли в матрице хотя бы одна строка, содержащая отрицательный элемент
2)Проверить, есть ли в матрице хотя бы одна строка, содержащая отрицательный элемент, и найти ее...

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

Проверить, есть ли в матрице хотя бы одна строка, содержащая положительный элемент
Написала код по условию "Проверить, есть ли в матрице хотя бы одна строка, содержащая положительный...

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

7
andreyka93
128 / 128 / 157
Регистрация: 11.04.2015
Сообщений: 343
07.12.2016, 11:11 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
53
#include <stdio.h>
#define ROWS 3
#define COLS 3
 
int main() {
    //double a[3][3] = { {1,2,3}, {4,5,6}, {7,8,-9} };
    double a[ROWS][COLS];
    int i, j, neg_elem_line = -1;
 
    printf("Enter the elements:\n");
 
    for (i = 0; i < ROWS; i++) {
        for (j = 0; j < COLS; j++) {
            scanf("%lf", &a[i][j]);
        }
    }
 
    printf("Initial matrix:\n");
    for (i = 0; i < ROWS; i++) {
        for (j = 0; j < COLS; j++) {
            printf("%5.1f ", a[i][j]);
        }
        printf("\n");
    }
 
    for (i = 0; i < ROWS; i++) {
        for (j = 0; j < COLS; j++) {
            if (a[i][j] < 0) {
                neg_elem_line = i; 
                break;
            }
        }
    }
 
    if (-1 != neg_elem_line) {
 
        for (i = neg_elem_line, j = 0; j < COLS; j++) {
            a[i][j] /= 2;
        }
 
        printf("Result is:\n");
        for (i = 0; i < ROWS; i++) {
            for (j = 0; j < COLS; j++) {
                printf("%5.1f ", a[i][j]);
            }
            printf("\n");
        }
    }
    else
        printf("There are no negative elements\n");
 
    return 0;
}
0
rogoved
0 / 0 / 0
Регистрация: 03.12.2014
Сообщений: 71
07.12.2016, 22:34  [ТС] 3
andreyka93, размер матрицы тоже вручную нужно вводить в процессе выполнения.

Добавлено через 19 минут
andreyka93, размер матрицы тоже вручную нужно вводить в процессе выполнения.

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
#include "stdafx.h"
#include <stdio.h>
 
int main() {
    //double a[3][3] = { {1,2,3}, {4,5,6}, {7,8,-9} };
    int i, j, ROWS=1, COLS=1, neg_elem_line = -1;
    double a[100][100];
    printf("Vvedite kolichestvo strok\n"); scanf_s("%d", &ROWS);
    printf("Vvedite kolichestvo stolbcov\n"); scanf_s("%d", &COLS);
    printf("Enter the elements:\n");
 
    for (i = 0; i < ROWS; i++) {
        for (j = 0; j < COLS; j++) {
            scanf_s("%lf", &a[i][j]);
        }
    }
 
    printf("Initial matrix:\n");
    for (i = 0; i < ROWS; i++) {
        for (j = 0; j < COLS; j++) {
            printf("%5.1f ", a[i][j]);
        }
        printf("\n");
    }
 
    for (i = 0; i < ROWS; i++) {
        for (j = 0; j < COLS; j++) {
            if (a[i][j] < 0) {
                neg_elem_line = i;
                break;
            }
        }
    }
 
    if (-1 != neg_elem_line) {
 
        for (i = neg_elem_line, j = 0; j < COLS; j++) {
            a[i][j] /= 2;
        }
 
        printf("Result is:\n");
        for (i = 0; i < ROWS; i++) {
            for (j = 0; j < COLS; j++) {
                printf("%5.1f ", a[i][j]);
            }
            printf("\n");
        }
    }
    else
        printf("There are no negative elements\n");
 
    return 0;
}
получается примерно так. но работает не так как нужно. уменьшает в двое СТРОКУ с этим элементом, а не номер столбца, который равен номеру строки с отриц. элементом. Или я не так понял условие?
0
andreyka93
128 / 128 / 157
Регистрация: 11.04.2015
Сообщений: 343
07.12.2016, 23:15 4
Я сделал что строка в которой найден отрицательный уменьшается в два раза, подумайте как переделать, это очень легко
0
rogoved
0 / 0 / 0
Регистрация: 03.12.2014
Сообщений: 71
08.12.2016, 13:21  [ТС] 5
andreyka93, я понял, к чему вы. было бы все до жути просто, если бы нужно было просто поделить СТОЛБЕЦ, а не строку. А в задаче, как я понял, номер строки с элементом = номер стоблца, который нужно поделить. или не так ?
0
LFC
730 / 535 / 416
Регистрация: 17.09.2015
Сообщений: 1,598
08.12.2016, 13:31 6
Цитата Сообщение от rogoved Посмотреть сообщение
размер матрицы тоже вручную нужно вводить в процессе выполнения
если ROWS будет больше чем COLS и neg_elem_line окажется тоже больше или равна COLS-программа вылетит
0
andreyka93
128 / 128 / 157
Регистрация: 11.04.2015
Сообщений: 343
08.12.2016, 13:42 7
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>
 
int main() {
    //double a[3][3] = { {1,2,3}, {4,5,-6}, {7,8,9} };
    int i, j, ROWS, COLS, neg_elem_line = -1;
    double a[100][100];
    printf("Vvedite kolichestvo strok\n"); scanf_s("%d", &ROWS);
    printf("Vvedite kolichestvo stolbcov\n"); scanf_s("%d", &COLS);
    printf("Enter the elements:\n");
 
    for (i = 0; i < ROWS; i++) {
        for (j = 0; j < COLS; j++) {
            scanf_s("%lf", &a[i][j]);
        }
    }
 
    printf("Initial matrix:\n");
    for (i = 0; i < ROWS; i++) {
        for (j = 0; j < COLS; j++) {
            printf("%5.1f ", a[i][j]);
        }
        printf("\n");
    }
 
    for (i = 0; i < ROWS; i++) {
        for (j = 0; j < COLS; j++) {
            if (a[i][j] < 0) {
                neg_elem_line = i;
                break;
            }
        }
    }
 
    if (-1 != neg_elem_line) {
 
        for (j = neg_elem_line, i = 0; i < COLS; i++) {
            a[i][j] /= 2;
        }
 
        printf("Result is:\n");
        for (i = 0; i < ROWS; i++) {
            for (j = 0; j < COLS; j++) {
                printf("%5.1f ", a[i][j]);
            }
            printf("\n");
        }
    }
    else
        printf("There are no negative elements\n");
 
    return 0;
}
0
rogoved
0 / 0 / 0
Регистрация: 03.12.2014
Сообщений: 71
08.12.2016, 14:55  [ТС] 8
andreyka93, вот. отриц. элементы в 1 и 2 строчке, делит пополам только второй столбец
0
Миниатюры
Проверить, есть ли в матрице хотя бы одна строка, содержащая отрицательный элемент  
08.12.2016, 14:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2016, 14:55

Вычислить количество строк матрицы, в которых есть хотя бы один отрицательный элемент
Дано матрицу размерности N на M. Вычислить количество строк матрицы, в которых есть хотя бы один...

Упорядочить элементы строк матрицы, в которых есть хотя бы один отрицательный элемент, по невозрастанию
Дана целочисленная матрица {Aij}i=A,...,n; j=1..n, n&lt;=100 Если сумма наибольшего и наименьшего...

Проверить, все ли строки матрицы содержат хотя бы один отрицательный элемент Если да, то изменить знаки всех элементов м
Проверить, все ли строки матрицы содержат хотя бы один отрицательный элемент Если да, то изменить...


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

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

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