Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- int main() {
- printf("\n Avtor - Klipikov A.V., student gr. PIbd-11\n");
- printf("Variant N 23\n");
- printf("Dan massiv celih chisel. Nuzhno zamenit' gruppu iz naibolshego kolichestva nulei na maksimalniy element massiva\n");
- printf("Vvedite kolichestvo elementov massiva:\n");
- int n, a[10010];
- scanf("%d", &n);
- printf("\n Vvedite %d elementov massiva:\n", n);
- for(int i = 0; i < n; i++)
- scanf("%d", &a[i]);
- int max = a[0], nulls = (int)(a[0] == 0), nulls_count = (int)(a[0] == 0), nulls_pos = -1, tmp_count = (int)(a[0] == 0), tmp_pos = (int)(a[0] == 0) - 1;
- for(int j = 1; j < n; j++) {
- if (a[j] > max)
- max = a[j];
- if (a[j - 1] != 0 && a[j] == 0) {
- tmp_count = 1;
- tmp_pos = j;
- }
- if (a[j - 1] == 0 && a[j] == 0) {
- tmp_count++;
- }
- if (a[j - 1] == 0 && (a[j] != 0 || j == (n - 1)) && tmp_count > nulls_count) {
- nulls_count = tmp_count;
- nulls_pos = tmp_pos;
- }
- if (a[j] == 0)
- nulls++;
- }
- if (nulls > 0) {
- a[nulls_pos] = max;
- for(int k = (nulls_pos + 1); k < (n - nulls_count + 1); k++)
- a[k] = a[k + nulls_count - 1];
- } else
- nulls_count = 0;
- printf("\n Obnovlenniy massiv:\n");
- for(int l = 0; l < n - nulls_count + (int)(nulls > 0); l++) {
- if ((l % 2) == 0) {
- printf("%d ", a[l]);
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement