Форум программистов, компьютерный форум CyberForum.ru

Задача по двумерным массивам - C++

Восстановить пароль Регистрация
 
СССР
Сообщений: n/a
07.09.2012, 14:57     Задача по двумерным массивам #1
Помогите пожалуйста решить задачу в С++
"Дан двумерный массив размером m*n, заполненный случайными числами. Определить, есть ли в данном массиве столбец, в котором равное количество положительных и отрицательных элементов."
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
07.09.2012, 15:01     Задача по двумерным массивам #2
СССР, а в чем вопрос состоит?
Как сделать? Циклом, с одним каунтером.
co6ak
Кошковед
 Аватар для co6ak
402 / 495 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
07.09.2012, 15:17     Задача по двумерным массивам #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
#include <iostream>
#include <cstdlib>
    
void matrPrint  ( int **, int, int );
void matrRadnom ( int **, int, int );
void matrCheck  ( int **, int, int );
std::string matrCheck ( int **, int, int );
    
int main() {
    srand( time ( 0 ) );
    int row;
    int column;
    int **matrix;
    
    std::cout << "\nEnter number of rows: ";
    std::cin >> row;
    std::cout << "\nEnter number of columns: ";
    std::cin >> column;  
 
    matrix = new int* [ row ];
    for ( int i = 0; i < row; i ++ )
        matrix[i] = new int [ column ] ;
    matrRandom( matrix, row, column );
    matrPrint ( matrix, row, column );
    std::cout << matrCheck ( matrix, row, column );
    matrDelete( matrix, row, column );
        
    return 0;       
}
    
void matrPrint ( int **matrix, int row, int column )
{
   std::cout << std::endl;
    for ( int i = 0; i < row; i ++ )
    {
        for ( int j = 0; j < column; j ++ )
            std::cout << matrix[i][j] << "\t";
       std:: cout << std::endl;
    }
}
 
 
 
 
void matrRandom( int ** matr, int row, int column )
{
    for ( int i = 0; i < row; i ++ )
        for ( int j = 0; j < column; j ++ )
            matr[i][j] = rand() % 50 - rand() % 25;
    matrPrint( matr, row, column );
}
 
void matrDelete(int ** matr, int row, int column ) {
    for ( int i = 0; i < row; i ++ )
            delete [] matrix[i];
        delete [] matrix;
}
 
std::string matrCheck (int ** matr, int row, int column ) {
    if ( column%2 == 0 ) {
        for ( int i = 0; i < column; i ++ ) {
            int pos = 0;
            for ( int j = 0; j < row; j ++ )
                matr[i][j] < 0 ? neg++;
            pos == column/2 ? return "YES";
    } else {
        for ( int i = 0; i < column; i ++ ) {
            int pos = 0;
            int neg = 0;
            for ( int j = 0; j < row; j ++ )
                if ( matr[i][j] < 0 ) neg++;
                else 
                    if ( matr[i][j] > 0 ) pos ++;
            pos == neg return "YES";
        } 
    return "NO";
}
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
07.09.2012, 15:20     Задача по двумерным массивам #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
42
43
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
#define N 10
#define M 12
 
int main()
{
    int** A = new int*[N];
    for (int n1 = 0; n1 < N; n1++)
    {
        A[n1] = new int[M];
        for (int n2 = 0; n2 < M; n2++)
        {
            A[n1][n2] = rand() % (N-1) * 2 - N + 1;
            printf("%d ",A[n1][n2]);
        }
 
        printf("\n");
    }
 
    printf("\n");
 
    for (int i = 0; i < M; i++)
    {
        int ncount = 0, pcount = 0;
        for (int j = 0; j < N; j++)
            if (A[j][i] >= 0) pcount++;
            else if (A[j][i] < 0) ncount++;
 
        if (ncount == pcount)
        {
            for (int k = 0; k < N; k++)
                printf("%d ",A[k][i]);
            printf("\n");
        }
    }
 
    _getch();
 
    return 0;
}
http://liveworkspace.org/code/e374be...70aa76b20b88be
Миниатюры
Задача по двумерным массивам  
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
07.09.2012, 16:07     Задача по двумерным массивам #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    short a[M][N], i, j, counter;
 
    for(i=0;i<M;++i)
    {
        std::cout<<std::endl;
        for(j=0;j<N;++j)
            std::cout<<setw(4)<<(a[i][j] = ((rand() % 20) - 10));
    }
 
    for(j=0;j<N;++j)
    {
        counter = 0;
        for(i=0;i<M;++i)
        {
            if(a[i][j] < 0) counter++;
            else counter--;
        }
        if(!counter) std::cout<<std::endl<<"Column #"<<j;
    }
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
07.09.2012, 16:26     Задача по двумерным массивам #6
Цитата Сообщение от Vourhey Посмотреть сообщение
C++
1
2
            if(a[i][j] < 0) counter++;
            else counter--;

Не по теме:

положительное число и неотрицательное это не одно и то же

Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
07.09.2012, 16:31     Задача по двумерным массивам #7
Цитата Сообщение от Thinker Посмотреть сообщение
положительное число и неотрицательное это не одно и то же

Не по теме:

Одно и то же

Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
07.09.2012, 20:29     Задача по двумерным массивам #8
Цитата Сообщение от Vourhey Посмотреть сообщение

Не по теме:

Одно и то же

Не по теме:

ну-ну... Если говорят, что это разные вещи, то зачем спорить. В одном случае 0 не учитывается, в другом учитывается. По заданию не учитывается.

OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
07.09.2012, 20:37     Задача по двумерным массивам #9
Цитата Сообщение от Vourhey Посмотреть сообщение

Не по теме:

Одно и то же

Не по теме:

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

Thinker
07.09.2012, 20:43
  #10

Не по теме:

в настоящее время все давно оговорено. есть числа <0, ==0, >0. Да и смешно как то считать положительным числом 0, исходя из понятия кольца, поля и т.д., введения частичного и полного порядка, цепей и т.д. В общем странный спор и ничего.

defer
07.09.2012, 21:03
  #11

Не по теме:

Цитата Сообщение от Thinker Посмотреть сообщение
В общем странный спор и ничего.
Если вы такой спор считаете странным, то зачем его начинаете?

Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
07.09.2012, 21:07     Задача по двумерным массивам #12
Цитата Сообщение от defer Посмотреть сообщение

Не по теме:


Если вы такой спор считаете странным, то зачем его начинаете?

Не по теме:

не начинаю, а странно все это, тут спорить то не о чем.

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.09.2012, 16:53     Задача по двумерным массивам
Еще ссылки по теме:

Вывод по двумерным массивам C++
C++ Задача по двумерным массивам и функциям
Задание по двумерным массивам(доработка) C++

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

Или воспользуйтесь поиском по форуму:
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
09.09.2012, 16:53     Задача по двумерным массивам #13
Цитата Сообщение от Thinker Посмотреть сообщение
Если говорят, что это разные вещи, то зачем спорить
если говорят "одно и то же" зачем спорить?
Цитата Сообщение от Thinker Посмотреть сообщение
По заданию не учитывается.
По заданию про ноль ничего не сказано вообще.
Цитата Сообщение от Thinker Посмотреть сообщение
в настоящее время все давно оговорено.
В настоящее время до сих пор не оговорено, считать 0 положительным, или нет каждый считает так, как ему удобно.
Yandex
Объявления
09.09.2012, 16:53     Задача по двумерным массивам
Ответ Создать тему
Опции темы

Текущее время: 23:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru