: , , .
/* 11. : , , . . */
// :
void in_arr(int *arr, int n); // n arr
void out_arr(int *arr, int n); // n arr
int array_del_0(int *arr, int &n); //
//
void sort_bubble(int *x, int n);
// "-"- "-"-
void move_negative_numbers(int *x, int n);
#include <stdio.h>
#include <conio.h>
main()
{ int i, j, k, n;
int x[50];
printf("\n n: \n");
scanf("%d", &n);
in_arr(x, n);
printf(" \n %d: \n", n);
out_arr(x, n);
//
k = array_del_0(x, n);
printf("\n\n k = %d : \n", k);
out_arr(x, n);
//
n = 10;
randomize();
for(i = 0; i < n; i++)
x[i] = random(20);
printf("\n\n : \n");
out_arr(x, n);
printf("\n : \n");
sort_bubble(x, n);
out_arr(x, n);
// x[i] < 0 x[k] < 0
n = 10;
for(i = 0; i < n; i++)
x[i] = random(20) - 10;
printf("\n\n : \n");
out_arr(x, n);
printf("\n x[i] < 0 1- x[k] < 0: \n");
move_negative_numbers(x, n);
out_arr(x, n);
getch();
return 0;
}
// n arr[ ]
void in_arr(int *arr, int n)
{ printf("\n %d : ", n);
for (int i = 0; i < n; i++)
scanf("%d", arr++); //
}
// n arr[ ]
void out_arr(int *arr, int n)
{ for (int i = 0; i < n; i++)
{ printf(" %d ", *arr++); //
//
if ((i+1) % 10 == 0) // 10 :
printf("\n");
}
}
//
// : n = 5, x = 1, 0, 3, 0, 4 ==> n = 3, x = 1, 3, 4
int array_del_0(int *arr, int &n)
{ int i, j, k;
for (i = 0, k = 0; i < n; i++)
if (arr[i] == 0) k++;
else { j = i - k;
arr[j] = arr[i];
}
n = n - k; //
return k; //
}
//
|
|
// : n = 5, x = 6, 2, 1, 4, 3 ==> x = 1, 2, 3, 4, 6
void sort_bubble(int *x, int n)
{ int i, k, w;
for(k = 1; k < n; k++) //
// n-k+1
for(i = 0; i < n-k; i++) //
// n-k+1
if(x[i] > x[i+1]) //
{ w = x[i];
x[i] = x[i+1];
x[i+1] = w;
}
}
// "-"- "-"-
// : n = 6, x = 1, -2, 3, -4, -5, 6 ==> x = 1, -2, -4, -5, 3, 6
void move_negative_numbers(int *x, int n)
{ int i, k = n, w;
for(i = 0; i < n - 2; i++) // 1- "-"
if(x[i] < 0) { k = i + 1; break; }
if(k == n) return; // "-"
//
for(i = k; i < n; i++) // "-"- 1-
// "-"-
if(x[i] < 0)
{ w = x[i];
x[i] = x[k];
x[k] = w;
k++;
};
}
1. k move_negative_numbers()?
2. i,
i.
3. , .
4. , .
5. : , .
6. 2-5.