Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2013, 18:47   #1
Zacsasha
Новичок
Джуниор
 
Регистрация: 18.11.2013
Сообщений: 1
По умолчанию Динамические массивы

В общем, вроде бы и сработала программа, но уж слишком криво.
Нужно было составить динамические массивы и перемножить их.
Код:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
 
int main()
{
    int i, j, n, k, m, z, c;
 
    printf("Input size N: ");
    scanf("%d", &n);
    printf("Input size K: ");
    scanf("%d", &k);
 
    int **matrica = (int **)malloc(n * sizeof(int *));
    
    for (i = 0; i < n; i++)
        matrica[i] = (int *)malloc(k * sizeof(int));
 
    srand(time(NULL));
 
    for (i = 0; i < n; i++)
        for (j = 0; j < k; j++)
            matrica[i][j] = rand() % 11;
 
    for(i = 0; i < n; i++)
    {
        for(j = 0; j < k; j++)
            printf("%d ", matrica[i][j]);
 
        printf("\n");
    }
    for (i = 0; i < n; i++)
    free(matrica[i]);
    free(matrica);
     
    printf("Input size M: ");
    scanf("%d", &m);
    
         int **matrix = (int **)malloc(m * sizeof(int *));
    
    for (i = 0; i < n; i++)
        matrix[i] = (int *)malloc(k * sizeof(int));
 
    srand(time(NULL));
 
    for (i = 0; i < k; i++)
        for (j = 0; j < m; j++)
            matrix[i][j] = rand() % 11;
 
    for(i = 0; i < k; i++)
    {
        for(j = 0; j < m; j++)
            printf("%d ", matrix[i][j]);
 
        printf("\n");
    }
    for (i = 0; i < k; i++)
    free(matrix[i]);
    free(matrix);
// -------------------------------------------------------------------------------------------------------------------------------------------
 int **matricaC = (int **)malloc(n * sizeof(int *));
    
    for (i = 0; i < n; i++)
        matricaC[i] = (int *)malloc(m * sizeof(int));
 
   
  
 for (i=0;i<n;i++)
for (j=0;j<k;j++)
{ matricaC [i][j]=0; //
for (z=0;z<m;z++)
matricaC [i][j]+=matrix[i][z]*matrica[z][j]; //
}
    for(i = 0; i < n; i++)
    {
        for(j = 0; j < m; j++)
            printf("%d ", matricaC[i][j]);
 
        printf("\n");
    }

    getch();
    return 0;
}

Последний раз редактировалось Stilet; 18.11.2013 в 18:58.
Zacsasha вне форума Ответить с цитированием
Старый 19.11.2013, 14:19   #2
nikmoon
Форумчанин
 
Регистрация: 13.11.2013
Сообщений: 149
По умолчанию

Код:
printf("Input size M: ");
scanf("%d", &m);
    
    int **matrix = (int **)malloc(m * sizeof(int *));
    
for (i = 0; i < n; i++)
    matrix[i] = (int *)malloc(k * sizeof(int));
Объяснишь, почему вводишь в программу m, создаешь массив из m указателей, а заполняешь по значению n?

Последний раз редактировалось nikmoon; 19.11.2013 в 14:25.
nikmoon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ДИНАМИЧЕСКИЕ массивы!!! Nvd Фриланс 6 14.03.2011 13:18
ДИНАМИЧЕСКИЕ массивы Nvd Помощь студентам 1 13.03.2011 17:55
ДИНАМИЧЕСКИЕ массивы!!! Nvd Помощь студентам 2 12.03.2011 14:29
Динамические массивы и массивы варианты N@stya Помощь студентам 0 11.06.2010 21:09
Динамические массивы Matr1x Общие вопросы C/C++ 5 07.12.2009 13:38