Непрямоугольная матрица - C (СИ)
Формулировка задачи:
Из входного потока вводится непрямоугольная матрица целых чисел [Aij],i=1,...,m,j=1,...,Ni. Значения m и Ni заранее не известны и вводятся из входного потока. Сформировать такую матрицу.
Решение задачи: «Непрямоугольная матрица»
textual
Листинг программы
int main(int argc,char* argv[]) { int i,j,n,m,**a; srand((unsigned)time(0)); printf("n:"); scanf("%d",&n); a=(int**)malloc(n*sizeof(int*)); for(i=0; i<n; i++) { printf("N%d:",i+1); scanf("%d",&m); a[i]=(int*)malloc((m+1)*sizeof(int)); *a[i]=m; for(j=1; j<=m; j++) a[i][j]=rand()%19-9; } for(i=0; i<n; i++,printf("\n")) { m=*a[i]; for(j=1; j<=m; j++) printf("%3d",a[i][j]); } system("pause"); for(i=0; i<n; i++) free(a[i]); free(a); return 0; }
Объяснение кода листинга программы
В этом коде:
- Объявляются переменные: i, j, n, m, **a.
- Инициализируется генератор случайных чисел.
- Пользователю предлагается ввести количество строк матрицы (n).
- Массив a инициализируется как двумерный массив, где каждая строка - это динамический массив m.
- В каждой строке матрицы пользователю предлагается ввести количество столбцов (m).
- Каждая ячейка матрицы инициализируется случайным числом от -9 до 9.
- Все строки выводятся на экран.
- Программа ожидает нажатия клавиши для продолжения.
- Все динамические массивы освобождаются с помощью функции free.
- Конец программы. Этот код создает матрицу случайных чисел и выводит ее на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д