Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 1
Регистрация: 26.03.2015
Сообщений: 15

Найти строку массива, в которой меньше всего перемен знака с минуса на плюс

26.10.2016, 00:39. Показов 1090. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Заполните двумерный числовой массив A[m][n] целыми числами. Найти строку массива, в которой меньше всего перемен знака с минуса на плюс или с плюса на минус и вывести эту строку отдельно.
Есть идеи как можно организовать поиск перемен знака с минуса на плюс? в голову ничего не приходит
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
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include "iostream"
#include "time.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "RUS");
    int **mas, i, j, m, n;
    time_t temp = time(NULL);
    srand(temp);
    printf("Введите кол-во строк :");
    scanf_s("%d", &m);
    printf("Введите кол-во столбцов :");
    scanf_s("%d", &n);
    mas = (int**)malloc(m * sizeof(int*));
    for (i = 0; i<m; i++)
        mas[i] = (int*)malloc(n * sizeof(int));
    printf("Введите элементы массива :\n");
    for (i = 0; i<m; i++)
    {
        for (j = 0; j<n; j++)
        {
            mas[i][j] = rand() % 101 - 20;
        }
    }
    printf("Массив :\n");
    for (i = 0; i<m; i++)
    {
        for (j = 0; j<n; j++)
            printf("%3d", mas[i][j]);
        printf("\n");
    }
    
    system("pause");
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.10.2016, 00:39
Ответы с готовыми решениями:

Найти строку матрицы, в которой меньше всего перемен знака
Задание: Динамически выделить память под N*M элементов вещественного типа float. Разработать алгоритм и программу обработки двумерного...

Найти строку матрицы, в которой меньше всего перемен знака
3. Заполнить двумерный числовой массив С целыми числами. Найти строку массива, в которой меньше всего перемен знака с минуса на плюс или с...

Найти число чередований знака, то есть число переходов с минуса на плюс или с плюса на минус
Помогите пожалуйста, сделал счетчик чисел со знаком и без, но как сделать чередования не пойму. data segment mas DB 1,2,-2,-4,6,$ ...

3
1498 / 1213 / 821
Регистрация: 29.02.2016
Сообщений: 3,631
26.10.2016, 11:23
Подсчитать количество перемен знака в последовательности целых чисел
1
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
26.10.2016, 11:48
Цитата Сообщение от Velka Посмотреть сообщение
перемен знака с минуса на плюс или с плюса на минус
C++
1
if (a[i]*a[i+1] < 0) ... // Это перемена знака
1
0 / 0 / 1
Регистрация: 26.03.2015
Сообщений: 15
27.10.2016, 00:34  [ТС]
Как сделать что бы он считал в каждой строке?
C++
1
2
3
4
5
6
    for (int i = 0; i < m -1; i++) {
    
            if (mas[0][i] < 0 && mas[0][i + 1] >= 0 || mas[0][i] >= 0 && mas[0][i + 1] < 0)
                count1++;       
    }
    cout << "\nСтрока = " << count1 << endl;
Добавлено через 55 минут
Как сделать так что бы программа считала в каждой строке, нужен же еще цикл какой-то, хз просто 5xn будет работать
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
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include "iostream"
#include "time.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "RUS");
    int **mas,**mas1, i, j, m, n, count1 = 0, count2 = 0, count3 = 0,count4=0,count5=0;
    time_t temp = time(NULL);
    srand(temp);
    printf("Введите кол-во строк :");
    scanf_s("%d", &m);
    printf("Введите кол-во столбцов :");
    scanf_s("%d", &n);
    mas = (int**)malloc(m * sizeof(int*));
    
    for (i = 0; i<m; i++)
        mas[i] = (int*)malloc(n * sizeof(int));
 
    
    for (i = 0; i<m; i++)
    {
        for (j = 0; j<n; j++)
        {
            mas[i][j] = rand() % 101 - 50;
        }
    }
 
    printf("Массив :\n");
    for (i = 0; i<m; i++)
    {
        for (j = 0; j<n; j++)
            
            printf("%3d", mas[i][j]);
        
        printf("\n");
        
    }
    
 
 
    for (int i = 0; i < m -1; i++) {
    
            if (mas[0][i] < 0 && mas[0][i + 1] >= 0 || mas[0][i] >= 0 && mas[0][i + 1] < 0)
                count1++;       
            if (mas[1][i] < 0 && mas[1][i + 1] >= 0 || mas[1][i] >= 0 && mas[1][i + 1] < 0)
                count2++;
            if (mas[2][i] < 0 && mas[2][i + 1] >= 0 || mas[2][i] >= 0 && mas[2][i + 1] < 0)
                count3++;
            if (mas[3][i] < 0 && mas[3][i + 1] >= 0 || mas[3][i] >= 0 && mas[3][i + 1] < 0)
                count4++;
            if (mas[4][i] < 0 && mas[4][i + 1] >= 0 || mas[4][i] >= 0 && mas[4][i + 1] < 0)
                count5++;
    }
    cout << "\nСтрока = " << count1 << endl;
    cout << "\nСтрока = " << count2 << endl;
    cout << "\nСтрока = " << count3 << endl;
    cout << "\nСтрока = " << count4 << endl;
    cout << "\nСтрока = " << count5 << endl;
 
        
            if (count1 > count2)
                for (i = 0; i < m-1; i++)
                {
                    cout << mas[1][i] << endl;
                }
            else if (count2 > count3)
                for (i = 0; i < m-1; i++)
                {
                    cout << mas[2][i] << endl;
                }
            else if (count3>count4)
                for (i = 0; i < m-1; i++)
                {
                    cout << mas[3][i] << endl;
                }
            else if (count4>count5)
                for (i = 0; i < m-1; i++)
                {
                    cout << mas[4][i] << endl;
                }
            else if (count5>count1)
                for (i = 0; i < m-1; i++)
                {
                    cout << mas[0][i] << endl;
                }
    
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.10.2016, 00:34
Помогаю со студенческими работами здесь

В массиве Z (m) найти количество дежурств знака, то есть количество переходов с минуса на плюс и наоборот. Например, в последовательности 0, - 2, 0 -
В массиве Z (m) найти количество дежурств знака, то есть количество переходов с минуса на плюс и наоборот. Например, в последовательности...

В целочисленном массиве найти число чередований знака, то есть число переходов с минуса на плюс или с плюса на минус.
В целочисленном массиве найти число чередований знака, то есть число переходов с минуса на плюс или с плюса на минус. Например, в...

Найти количество перемен знака в массиве
Найти количество перемен знака в массиве из N чисел. Нулевые элементы заменить абсолютным значением предыдущего. Если первый элемент...

Подсчитать количество перемен знака между элементами массива
Дан массив А(k) целых чисел со знаком. Подсчитать количество перемен знака между элементами массива при движении от элемента А1 к элементу...

В массиве найти количество и координаты перемен знака
Задача на языке Си: Нужно в массиве найти колличество и координаты перемен знака. P.s уже неделю пробую ничего не выходит((((


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru