Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Двухмерные массивы


Автор: Roma92 28.10.2010, 19:44
Образовать матрицу A(nxn), сгенерировав элементы случайным образом. Определить индексы минимального элемента матрицы. Вычислить сумму отрицательных элементов. Найти максимальный.

Автор: system 29.10.2010, 04:40
А в чем сложность?
можешь даже не делать двумерный массив а работать с одномерным размером nxm, 
т.е. как-то так :
y =  (i - X)/X
x = i - y*X
где i номер, а X скажем ширина массива.
или даже так ( индексация с 1 )
y = (n-1)/X + 1; 
X = n - X*(y-1);

т.е. вся работа сводится к одноразовому прохождению одномерного массива,  в общем фигня, хотя даже без упрощения не понятно где может возникнуть сложность. 

Автор: Roma92 29.10.2010, 14:38
 я просто не очень понимаю ето, я только начил учить..=) Помогите!!!

Автор: system 30.10.2010, 00:28
в духе студента
Код

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define M 7
#define N 8
void main()
{
        srand(time(NULL));
    int buf[M][N] = {0};
    for ( int i = 0; i < M; ++i )
    {
        for( int j = 0; j < N; ++j )
        {
            int value = rand() % 1000 - 500;
            printf( "%d\t", value );
            buf[i][j]= value;
        }
        printf( "\n" );
    } 
    
    int negative_sum =  0;
    int min = buf[0][0], max = buf[0][0];
    int min_x = 0, min_y = 0, max_x = 0, max_y = 0;
    for( int i = 0; i < N; ++i )
    { 
        for( int j = 0; j < M; ++j )
        { 
            int value = buf[i][j];
            if( value < 0 ) negative_sum += value;
            if( value < min ) 
            { 
                min = value;
                min_x = j;
                min_y = i;
            }
            if( value > max )
            { 
                max = value;
                max_x = j;
                max_y = i;
            }
        }
    }
    
    printf( "negative sum %d\n", negative_sum );
    printf( "min element value = %d , x=%d, y=%d\n", min, min_x, min_y );
    printf( "max element value = %d , x=%d, y=%d\n", max, max_x, max_y );
        getchar();
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)