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

Двумерный массив, простая задача. - C++

Восстановить пароль Регистрация
 
gorny
0 / 0 / 0
Регистрация: 01.12.2009
Сообщений: 10
20.06.2010, 15:30     Двумерный массив, простая задача. #1
Задать квадратную матрицу порядка N. Вычислить и запомнить в массиве произведение элементов каждого столбца матрицы. //вроде эелементарно, но я даже не могу задать двумерный массив, хотя с одномерными проблем нет =(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2010, 15:30     Двумерный массив, простая задача.
Посмотрите здесь:

Задача на двумерный массив C++
C++ Двумерный массив (ЗАдача)
C++ Задача (двумерный массив).
задача на двумерный массив C++
C++ задача на двумерный массив
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mvji
0 / 0 / 0
Регистрация: 02.12.2009
Сообщений: 17
20.06.2010, 16:41     Двумерный массив, простая задача. #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
// Задать квадратную матрицу порядка N.
// Вычислить и запомнить в массиве произведение элементов каждого столбца матрицы.
// Элементы задаються случайным образом
 
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <math.h>
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    int i, j ,n ;
    int max = 0;
    //Ввод числа строк и столбцов
    printf("Enter n:\n"); scanf_s("%d",&n);
    //Выделение памяти под массив
    int** a = new int*[n];
    int* b = new int[n];
    printf("\nMatrix:\n");
    for(i = 0; i < n; i++){
        a[i]=new int[n];
        for(j = 0; j < n; j++){
            a[i][j] = int(rand() % 15); //присваиваем элементам строки случайные значения
            printf("%d  ",a[i][j]);    //выводим элементы матрицы на экран
            b[j] = 1;
        }
        printf("\n");
    }
    printf("\nArray of product:\n");//выводим массив произведений столбцоы
    for(j = 0; j < n; j++){
        for(i = 0; i < n; i++)
            b[j] *= a[i][j];
        printf("%d  ", b[j]);
    }
    printf("\n");
    //Очистка памяти
    for (int i = 0; i < n; i++)
        delete [] a[i];
    delete [] a;
    delete [] b;
 
    system("pause");
    return 0;
}
P.S. Написано в visual c++ 2008
gorny
0 / 0 / 0
Регистрация: 01.12.2009
Сообщений: 10
20.06.2010, 16:46  [ТС]     Двумерный массив, простая задача. #3
а в си не пойдет? нужно на си =(
mvji
0 / 0 / 0
Регистрация: 02.12.2009
Сообщений: 17
20.06.2010, 16:49     Двумерный массив, простая задача. #4
Насчет си я не знаю, с ним не знаком, но в общем то языки скожие, попытайся хоть суть уловить.
gorny
0 / 0 / 0
Регистрация: 01.12.2009
Сообщений: 10
20.06.2010, 18:11  [ТС]     Двумерный массив, простая задача. #5
сильно отличается.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
20.06.2010, 20:50     Двумерный массив, простая задача. #6
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>
#include <stdlib.h>
#include <time.h>
 
int main(void){
    int n, ** matrix, * array, i, j;
    
    printf("N = ");
    if ( scanf("%d", &n) != 1 || ! n ){
        fprintf(stderr, "Wrong input!\n");
        exit(EXIT_FAILURE);
    }
    
    srand(time(NULL));
    
    if ( ( matrix = (int**)calloc(n, sizeof(int*)) ) == NULL ){
        perror("calloc");
        exit(EXIT_FAILURE);
    }
    for ( i = 0; i < n; ++i ){
        if ( ( matrix[i] = (int*)calloc(n, sizeof(int)) ) == NULL ){
            perror("calloc");
            exit(EXIT_FAILURE);
        }
    }
    if ( ( array = (int*)calloc(n, sizeof(int)) ) == NULL ){
        perror("calloc");
        exit(EXIT_FAILURE);
    }
    
    printf("\nMatrix:\n");
    for ( i = 0; i < n; ++i ){
        for ( j = 0; j < n; ++j )
            printf("%5d ", ( matrix[i][j] = rand() % 10 + 1 ));
        printf("\n");
    }
    
    printf("Multiply:\n");
    for ( j = 0; j < n; ++j ){
        array[j] = 1;
        for ( i = 0; i < n; ++i )
            array[j] *= matrix[i][j];
        printf("%5d ", array[j]);
    }
    printf("\n\n");
    
    for ( i = 0; i < n; ++i )
        free(matrix[i]);
    free(matrix);
    free(array);
    
    exit(EXIT_SUCCESS);
}
Yandex
Объявления
20.06.2010, 20:50     Двумерный массив, простая задача.
Ответ Создать тему
Опции темы

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