har ** mas;
int c, m = 0, n = 0;
mas = (char **) malloc (sizeof (char *));// Виділення пам'яті під перше число
mas [0] = (char *) malloc (sizeof (char));// Виділення пам'яті під першу позицію// цифри в числі
printf ("Intput n");
while ((c = getch ()) - '0 ')// Ще не ввели 0
{
if (c == 13)// При натисканні Enter виділення пам'яті
{//під нове число
mas [m] [n] = 0;
m + +;
if (! (mas = (char **) realloc (mas, sizeof (char *) * (m +1))))
{
printf ("Не вистачає пам'яті n");
exit (1);
}
n = 0;
putch (10);// Переклад карреткі і переклад рядка
putch (13);// при виведенні на екран
}
if ((c <'0 ') | | (c> '9')) continue;// Перевірка на введення тільки цифр
if ((! n) && (m))// Виділення пам'яті під першу позицію
{//в наступному числі
if (! (mas [m] = (char *) malloc (sizeof (char))))
{
printf ("Не вистачає пам'яті n");
exit (1);
}
}
mas [m] [n] = c;// Занесення цифри на потрібну позицію
n + +;// в число
if (n)// Виділення пам'яті під наступну
{//позицію в числі
if (! (mas [m] = (char *) realloc (mas [m], sizeof (char) * (n +1))))
{
printf ("Не вистачає пам'яті n");
exit (1);
}
}
putch (c);// Висновок цифри на екран
}
printf ("Output n");
for (int i = 0; i
// Виведення всіх чисел на екран
for (i = 0; i
// Звільнення пам'яті
if (mas) free (mas);
return 0;
}
Завдання № 12
# include
# include
# include
# include
struct Matr {
int m, n;
double ** ptr;
void SetRazm (int mm, int nn)
{
m = mm;
n = nn;
}
};
int DinMatr (Matr * matr);// функція виділення пам'яті для Matr
void FreeMatr (Matr * matr);// функція звільнення пам'яті з під Matr
void Setelem (Matr * matr, double M [3] [3]);
// функція заповнення матриці елементами
double OctNorm (Matr * matr);// функція обчислення норми матриці
main ()
{
clrscr ();
double M_ [3] [3] = {{1,2,3}, {4,5,6}, {7,8,9}};
Matr M;
M.SetRazm (3,3);
if (! DinMatr (& M))
{
printf ("Не вистачає пам'яті для матриці n");
exit (1);
}
Setelem (& M, M_);
printf ("% f n", OctNorm (& M));
FreeMatr (& M);
return 0;
}
int DinMatr (Matr * matr)
{
if (! (matr-> ptr = (double *...