#include<stdio.h>
#include <stdlib.h>
int main ()
{
int *v;
int nr, i, j, k, n;
int *a, *b, nr_a, nr_b;
scanf("%d%d", &n, &nr);
v = malloc(n*sizeof(int));
for (i=0; i<n; i++)
scanf("%d", &v[i]);
a = calloc(n, sizeof(int));
if (a == NULL) return 0;
b = calloc(n, sizeof(int));
if (b == NULL) return 0;
j=-1; k=-1;
for (i=0; i<n; i++)
printf("%d ", v[i]);
for (i=0; i<n; i++)
if (v[i] > nr)
a[++j] = v[i];
else
b[++k] = v[i];
for (i=0; i<j; i++)
printf("%d ", a[i]);
printf("\n");
for (i=0; i<k; i++)
printf("%d ", b[i]);
return 0;
}
--------------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
int **get_matrix(int n, int m)
{
int i, j;
int **mat;
mat = malloc(n * sizeof(int *));
if (mat == NULL) {
return NULL;
}
for (i = 0; i < n; i++) {
mat[i] = calloc(m , sizeof(int));
if (mat[i] == NULL) {
for (j = 0; j < i; j++) {
free(mat[j]);
}
free(mat);
return NULL;
}
}
return mat;
}
void free_matrix(int ***mat, int n)
{
int i;
for (i = 0; i < n; i++) {
free((*mat)[i]);
}
free(*mat);
*mat = NULL;
}
void read_matrix(int **mat, int n, int m)
{
int i, j;
for (i = 0; i < n; i++) {
for (j = 0; j < m; j++) {
scanf("%d", &mat[i][j]);
}
}
}
void sum_lines(int **mat, int n, int m)
{
int i, j, sum;
for (i = 0; i < n; i++) {
sum = 0;
for (j = 0; j < m; j++) {
sum += mat[i][j];
}
printf("Suma elementelor de pe linia %d este %d\n", i, sum);
}
}
void print_matrix(int **mat, int n, int m)
{
int i, j;
for (i = 0; i < n; i++) {
for (j = 0; j < m; j++) {
printf("%d ", mat[i][j]);
}
printf("\n");
}
}
void copy_line(int **mat, int *v, int n, int m, int line)
{
int i, j;
v = malloc (m*sizeof(int));
if (v == NULL)
exit(0);
printf("\n");
for (j = 0; j < m; j++)
v[j] = mat[line][j];
for (i = 0; i < m; i++)
printf("%d ", v[i]);
}
void new_line(int **mat, int *vector, int n, int m)
{
////// realloc pe matrice (n+1 linii * sizeof(*int))
mat[n+1] = calloc(m , sizeof(int));
if (mat[n+1] == NULL) exit(0);
mat[n+1] = vector;
}
int main(void)
{
int n, m, line;
int **matrix, *vector;
scanf("%d%d%d", &n, &m, &line);
matrix = get_matrix(n, m);
if (matrix == NULL) {
printf("Allocation error\n");
return 1;
}
read_matrix(matrix, n, m);
print_matrix(matrix, n, m);
sum_lines(matrix, n, m);
copy_line(matrix, vector, n, m, line);
free_matrix(&matrix, n);
return 0;
}