Помогите поправить код

А чего тебе в твоём коде не нравится? Вроде работает )) Хотя стиль, конечно, оставляет желать лучшего )))))

Как вариант, можно предложить:

#include <stdio.h>
//#include <locale.h>

// сдвинуть элементы массива ary вправо на одну позицию
// с позиции from по позицию to
void shift(int *ary, int from, int to) {
    for (int idx = to; idx > from; --idx) {
        ary[idx] = ary[idx - 1];
    }
}


int main()
{
    //setlocale(LC_ALL, ".1251");

    int a[100],i,n,b,m,k,f;
    puts("Введите количество элементов массива");
    scanf("%d", &n);
    for(i=0;i<n;i++)
    {
        printf("\n Введите %d", i);
        printf(" элемент массива ");
        scanf("%d", &a[i]);
    }
    puts("Введите некоторое число");
    scanf("%d", &m);

    for (i = 0, f = 0; i < n; ++i) {
        b = a[i];
        if (b >= m) {
            shift(a, f, i);
            a[f] = b;
            ++f;
        }
    }


    for(i=0;i<n;i++)
    printf("\n %d \n", a[i]);
    return 0;
}

Или вот такой «инлайновый» вариант:

#include <stdio.h>
//#include <locale.h>


int main()
{
    //setlocale(LC_ALL, ".1251");

    int a[100],i,n,b,m,k,f;
    puts("Введите количество элементов массива");
    scanf("%d", &n);
    for(i=0;i<n;i++)
    {
        printf("\n Введите %d", i);
        printf(" элемент массива ");
        scanf("%d", &a[i]);
    }
    puts("Введите некоторое число");
    scanf("%d", &m);

    for (i = 0, f = 0; i < n; ++i) {
        b = a[i];
        if (b >= m) {
            // сдвинуть элементы массива ary вправо на одну позицию
            for (int idx = i; idx > f; --idx) {
                a[idx] = a[idx - 1];
            }
            a[f] = b;
            ++f;
        }
    }


    for(i=0;i<n;i++)
    printf("\n %d \n", a[i]);
    return 0;
}

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.