Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lexzii_08 / lexs_3_mas_A.doc
Скачиваний:
14
Добавлен:
17.05.2015
Размер:
80.9 Кб
Скачать

Void main()

{ int **p, // p - iм'я покажчика на динамiчний масив покажчикiв

*p1, i, j, ik, jk; clrscr(); // очистити екран

printf ("\nВвeдiть кiлькiсть рядкiв матрицi: \n");

scanf ( "%d", &ik);

printf ("Кiлькiсть рядкiв матрицi = %d", ik);

// Запит ОП динамiчному масиву покажчикiв:

p=(int**) malloc (ik * sizeof(int*));

for (i=0; i < ik; i++)

{ printf("\nВкажiть кiлькiсть значень в %d рядку : ", i+1 );

scanf ("%d", &jk);

printf("Кiлькiсть значень в %d рядку = %d ", i+1, jk );

//Запит ОП i-рядку вiльного масиву:

p[i]= p1 = (int*) malloc ((jk+1) * sizeof (int));

*p1++ =jk; //или *p[i] =jk; або: *(p+i)= jk;

printf("\n Вводиться %d-й рядок \n", i+1);

for (j=1; j<=jk; j++)

{printf ("\n Введiть %d-е значення : ", j);

scanf ("%d", p1++); // Або: (p[i]+j), (*(p+i)+j)

} // - кiнець циклу по 'j'

} // - кiнець циклу по 'i'

for (i=0; i<jk; i++)

{p1 = p[i]; jk = *p1;

for (j=0; j<jk; j++)

printf ("%d ", *p1++);

//або printf ("%d ", *(p[i]+j) );

//або printf ("%d ", *(*(p+i)+j) );

printf ("%d ", *p1);

printf ("\n"); }

// Звiльнення ОП i-рядкa вiльного масиву:

free (p); // Звiльнення ОП покажчика для масиву покажчик?в

printf ("\nДля завершення роботи натиснiть будь-яку клавiшу\n");

getch (); // - натиснути будь-яку клавiшу

}

8

Соседние файлы в папке lexzii_08