Динамическое выделение памяти под массив - C (СИ) (251805)
Формулировка задачи:
Здравствуйте, помогите пожалуйста сделать в процедуре input динамическое выделение памяти под размер двухмерного массива, и динамическое выделение памяти под одномерный массив, в который переписываются значения больше С.
Задание было такое, нужно сделать двухмерный массив макс размером 15х25 и из матрицы выписать числа большие С в одномерный массив если таких числе нет то выписываем 0.
#include#include // srand(), rand() #include // time() // размеры массива зададим константами: #define K 15 #define L 25 void input (int *k,int *l,int *c) { do { printf("Strok: "); scanf("%d", k); printf("Stolb: "); scanf("%d", l); }while (*k>15 && *l>25); printf("Chislo: "); scanf("%d", c); } int massiv (int a[K][L],int b[K],int c) { /* чтобы не вводить 375 значений с клавиатуры, заставим трудиться рнд */ srand(time(NULL)); // новая точка отсчета рнд int i,j,m = 50; // переменные-счетчики, максимум рнд for (i=0; i \n"); } // выведем на экран получившийся массив b[]: printf("\narray b[]:\n"); for (i=0; i \n"); // конец программы return b[K]; } int main (void) { int a[K][L];int b[K];int k;int l;int c; int i; int j; input(&k,&l,&c); massiv(a,b,c); output (a,b,k,l,c,i,j); return 0; }
Решение задачи: «Динамическое выделение памяти под массив»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> void createArray(int** array1, int*** array2) { int n = 15; int m = 25; *array1 = (int*) malloc(n * sizeof(int)); *array2 = (int**) malloc(n * sizeof(int*)); for (int i = 0; i < n; i++) { (*array1)[i] = rand() % 10; (*array2)[i] = (int*) malloc(m * sizeof(int)); for (int j = 0; j < m; j++) { (*array2)[i][j] = rand() % 10; } } } void printArray(int** array1, int*** array2) { int n = 15; int m = 25; printf("array1:\n"); for (int i = 0; i < n; i++) { printf("%d ", (*array1)[i]); } printf("\n"); printf("array2:\n"); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { printf("%d ", (*array2)[i][j]); } printf("\n"); } } int main() { srand(time(NULL)); int* array1; int** array2; createArray(&array1, &array2); printArray(&array1, &array2); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д