По введенному двухмерному массиву сформировать одномерный массив - C (СИ)
Формулировка задачи:
Программа работает, но не выводит правильно одномерный массив. Задача программы - по введенному двухмерному массиву сформировать одномерный массив.
#include <stdio.h>
#include <conio.h>
#define n 4
#define m 5
void mass1(int i, int j, float min, float *p) // построение одномерного массива X1 из минимальных элементов каждой строки массива X2.
{
float X2[n][m];
float X1[i];
X2[n][m]=*p;
for (i=0; i<n; i++)
{
min=X2[i][0];
for (j=0; j<m; j++)
{
if (X2[i][j] < min)
min=X2[i][j];
}
X1[i]=min;
printf("%.1f\t", X1[i] );
}
}
int main()
{
int i, j;
float A[n][m], min, min1, M1, *p;
{
for (i=0; i<n; i++)
{
for (j=0; j<m; j++)
{
printf("vvedite A[%d][%d]", i, j);
scanf("%f", &A[i][j]); // ввод массива A.
}
}
printf("massiv A:\n");
printf("\n");
for (i=0; i<n; i++)
{
for (j=0; j<m; j++)
printf("%.1f\t", A[i][j]); // вывод массива А.
printf("\n");
}
printf("\n");
printf("massiv iz min elementov massiva A(A1):\n" );
p = &A[4][5];
mass1(i, j, min, p);
}
getch();
}Решение задачи: «По введенному двухмерному массиву сформировать одномерный массив»
textual
Листинг программы
X2 = malloc(sizeof(float)*n*m);
Объяснение кода листинга программы
X2- это название переменной, которая будет использоваться для хранения данных из двухмерного массива.nиm- это названия переменных, которые определяют размеры двухмерного массива.sizeof(float)*n*m- это выражение, которое используется для вычисления размера памяти, необходимой для хранения одномерного массива. Здесь мы умножаем размер одного элемента (в данном случае float) на количество элементов в массиве (n*m).malloc- это функция, которая используется для выделения памяти под одномерный массив.X2будет содержать значения из двухмерного массива, после его обработки.