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

Найти в матрице первый столбец, все элементы которого положительны

14.10.2017, 14:37. Просмотров 936. Ответов 7
Метки нет (Все метки)

Здравствуйте . Помогите пожалуйста написать код. Уже 3 день бьюсь. не получается.

Найти в матрице первый столбец, все элементы которого положительны. Знаки элементов предыдущего столбца изменить на противоположные.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2017, 14:37
Ответы с готовыми решениями:

Найти в матрице первый столбец, все элементы которого положительны.
Задание: Найти в матрице первый столбец, все элементы которого положительны. Знаки элементов...

Найти в матрице первый столбец, все элементы которого отрицательны
Найти в матрице первый столбец, все элементы которого отрицательны, и среднее арифметическое этих...

Найти в матрице первый столбец, все элементы которого отрицательны и среднее арифметическое этих столбцов
Вычесть полученное из всех элементов матрицы

Функции: найти в матрице первую строку, все элементы которой положительны, и сумму этих элементов
Найти в матрице первую строку, все элементы которой положительны, и сумму этих элементов....

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

7
Michail97
93 / 40 / 23
Регистрация: 18.09.2016
Сообщений: 372
14.10.2017, 15:15 2
Лучший ответ Сообщение было отмечено алиса 623 как решение

Решение

алиса 623, покажите, что у вас уже есть.

Добавлено через 27 минут
алиса 623, программа очень простая. Разбирайтесь.
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
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
/**Найти в матрице первый столбец, все элементы которого положительны.
   Знаки элементов предыдущего столбца изменить на противоположные.**/
int main()
{
    int matrix[][4] =
    { {-1, 12, 34, 23},
      { 3, -5, -43, 21 },
      { 1, -1, 1, 1 },
      { 10, 11, 12, 13}};
      printf( "Matrix\n" );
      for( int i = 0; i < 4; i++ )
    {
        for( int j = 0; j < 4; j++ )
            printf( "%2d ", matrix[i][j] );
        printf( "\n");
    }
    int column = -1;
    for( int j = 0; j < 4; j++)
        {
            bool flag = true;
            for( int i = 0; i < 4; i++ )
                if( matrix[i][j] < 0 ) flag = false;
            if( flag )
            {
                column = j;
                if( j )
                {
                    j = j - 1;
                    for( int k = 0; k < 4; k++ )
                      matrix[k][j] *= -1;
                }
                 break;
            }
        }
    printf( "New matrix\n");
    for( int i = 0; i < 4; i++ )
    {
        for( int j = 0; j < 4; j++ )
            printf( "%2d ", matrix[i][j] );
        printf( "\n");
    }
 
printf( "Number of column: %d", column);
 
 
    return 0;
}
0
алиса 623
1 / 1 / 0
Регистрация: 18.09.2017
Сообщений: 18
14.10.2017, 15:28  [ТС] 3
Спасибо большое. Буду разбираться

Добавлено через 7 минут
А модно спросить. Что тозначает запись bool flag=true?

Добавлено через 1 минуту
Извините за опечатки. Пишу с телефона
0
Michail97
93 / 40 / 23
Регистрация: 18.09.2016
Сообщений: 372
14.10.2017, 15:32 4
алиса 623, тип данных bool определён в библиотеке stdbool.h.
Доступен только в стандарте с99.
Булева переменная может иметь два значения 0 или 1.
false - 0
true - 1
Данный тип был создан, потому что для хранения флага ( 0 или 1 ) достаточно 1 бита.
0
14.10.2017, 15:32
алиса 623
1 / 1 / 0
Регистрация: 18.09.2017
Сообщений: 18
14.10.2017, 15:46  [ТС] 5
Ясно. Спасибо
0
алиса 623
1 / 1 / 0
Регистрация: 18.09.2017
Сообщений: 18
16.10.2017, 17:52  [ТС] 6
Michail97, Здравствуйте. Из винте за такое кол-во вопросов. Но не могли бы вы рассказать как переписать ваш код. что бы вводить размер матрицы и элементы надо было с клавиатуры . Буду очень благодарна

я пробовала изменить вот что получилось
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
#include <stdafx.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
/**Найти в матрице первый столбец, все элементы которого положительны.
Знаки элементов предыдущего столбца изменить на противоположные.**/
int main()
{
    int matrix[100][100], n, m, i, found_column;
    printf("Vvidite n i m \n");
    scanf_s("%d%d", &n, &m);
 
    for (int i = 0; i < n; i++) {
 
        for (int j = 0; j < m; j++)
        {
            printf("Vvedite elementi massiva: [%d%d]\n", i + 1, j + 1);
            scanf_s("%d", &matrix[i][j]);
        }
    }
 
 
    for (int i = 1; i < n; i++)
    {
        for (int j = 1; j < m; j++)
            printf("%2d ", matrix[i][j]);
        printf("\n");
    }for (i = 1; i < n; i++)
    {
        for (int j = 1; j < m; j++)
        {
            if (matrix[i][j] >= 0) {
                int column = i;
            }
        }
        for (int j = 0; j < m; j++)
        {
            bool flag = true;
            for (i = 1; i < n; i++)
                if (matrix[i][j] < 0) flag = false;
            if (flag)
            {
                found_column = j;
                if (j)
                {
                    j = j - 1;
                    for (int k = 0; k < n; k++)
                        matrix[k][j] *= -1;
                }
                break;
            }
        }
        printf("New matrix\n");
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < m; j++)
                printf("%2d ", matrix[i][j]);
            printf("\n");
        }
        int column;
        printf("Number of column: %d", found_column);
 
 
        return 0;
    }
}
но работает неправильно.
0
Michail97
93 / 40 / 23
Регистрация: 18.09.2016
Сообщений: 372
17.10.2017, 10:25 7
алиса 623,
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
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
/**Найти в матрице первый столбец, все элементы которого положительны.
   Знаки элементов предыдущего столбца изменить на противоположные.**/
int main()
{
      int m, n;
      printf( "Nline: ");
      scanf( "%d", &m );
      printf( "Ncolumn: ");
      scanf( "%d", &n );
      int matrix[m][n];
      for( int i = 0; i < m; i++ )
        for( int j = 0; j < n; j++ )
            scanf( "%d", &matrix[i][j] );
      printf( "Matrix\n");
      for( int i = 0; i < m; i++ )
    {
        for( int j = 0; j < n; j++ )
            printf( "%2d ", matrix[i][j] );
        printf( "\n");
    }
    int column = -1;
    for( int j = 0; j < n; j++ )
        {
            bool flag = true;
            for( int i = 0; i < m; i++ )
                if( matrix[i][j] < 0 ) flag = false;
            if( flag )
            {
                column = j;
                if( j )
                {
                    j = j - 1;
                    for( int k = 0; k < m; k++ )
                      matrix[k][j] *= -1;
                }
                 break;
            }
        }
    printf( "New matrix\n");
    for( int i = 0; i < m; i++ )
    {
        for( int j = 0; j <n; j++ )
            printf( "%2d ", matrix[i][j] );
        printf( "\n");
    }
 
printf( "Number of column: %d", column);
 
 
    return 0;
}
Добавлено через 2 часа 42 минуты
алиса 623, и при вводе вводите как матрицу. scanf при чтении потока пропускает знаки пробелов, табуляцию и перевод строки
0
алиса 623
1 / 1 / 0
Регистрация: 18.09.2017
Сообщений: 18
17.10.2017, 16:24  [ТС] 8
Огромное спасибо . ).
0
17.10.2017, 16:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2017, 16:24

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

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

В матрице А[6][6] найти номер столбца, элементы, которого являются монотонной спадающей последовательностью
Гуглил - не нагуглил, смог только вывести матрицу #include &lt;stdio.h&gt; int main() { int a = {...


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

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

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