Переместить в конец массива все его отрицательные элементы - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Вычислить сумму положительных элементов массива. Вывести на дисплей полученное значение. После этого изменить исходный массив следующим образом: переместить в конец массива все его отрицательные элементы. Порядок следования не перемещаемых элементов не изменять. Вывести на дисплей количество перемещенных элементов. Как собстно переместить эти элементы правильно,потому что методом Пузырька у меня не получается.И как вывести их кол-во?
#include <stdio.h>
#include <stdlib.h>
#include<time.h>
#define MAX 10
 
void sort(int[], int);
 
int main(void)
{
    int mass[MAX];
    int n, i;
    int sum = 0;
 
    printf("Input size:");
    scanf_s("%i", &n);
    printf("Input elements of mass[%i]:\n", n);
 
    for (i = 0; i < n; i++)
        scanf_s("%i", &mass[i]);
    for (i = 0; i < n; i++)
        if (mass[i] > 0)
        {
            sum += mass[i];
        }
printf("sum=%i\n", sum);
 
    return 0;
}

Решение задачи: «Переместить в конец массива все его отрицательные элементы»

textual
Листинг программы
 for (int i = 0; i < M; i++)
    {
        static int j = 0, k = M - 1;
        if (b[i] < 0)//  все отрицательные будут строиться от начала
        {
            a[j] = b[i];
            j++;
        }
        else// остальные с конца
        {
            a[k] = b[i];
            k--;
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4 из 5
Похожие ответы