Форум программистов, компьютерный форум CyberForum.ru

массив - C++

Восстановить пароль Регистрация
 
stalker_asu
0 / 0 / 0
Регистрация: 28.11.2010
Сообщений: 31
11.12.2010, 19:29     массив #1
Дан числовой массив размера N. Наименьший из элементов
массива поместить на первое место в массиве, наименьший из
оставшихся — на последнее место, следующий по величине — на
второе место, следующий — на предпоследнее, и так далее, до
середины массива. Напишите на Си... Срочно надо. плиз.......
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2010, 19:29     массив
Посмотрите здесь:

Дан массив А(4,4). Сформировать массив В(4) из среднеарифметических значений элементов в каждой строке. C++
C++ Массив: сформировать массив C[12] так, чтобы элементы располагались следующим образом: A(1) B(1) A(2) B(2)
C++ Дан массив целых чисел,произвести для него следующие операции: для каждого из чисел ,входящего в массив,указать,сколько раз оно входит в массив...
C++ Ввести массив А. В массив В перенести все элементы массива А, стоящие правее максимального элемента, и имеющие нечетный индекс. Массив В отсортировать
C++ Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
11.12.2010, 23:28     массив #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "stdio.h"
int main()
{
    const int N=9;
    int mas[N]={1,2,3,4,5,6,7,8,9}, l=0, r=N-1, i_temp, i, temp;
    while(l<r)
    {
        i_temp=l;
        for(i=l+1; i<=r; i++)
            if(mas[i_temp]>mas[i])
                i_temp=i;
        temp=mas[l]; mas[l++]=mas[i_temp]; mas[i_temp]=temp;
        i_temp=r;
        for(i=l; i<=r; i++)
            if(mas[i_temp]>mas[i])
                i_temp=i;
        temp=mas[r]; mas[r--]=mas[i_temp]; mas[i_temp]=temp;
    }
    for(i=0; i<N; i++)
        printf("%d ", mas[i]);
    return 0;
}
stalker_asu
0 / 0 / 0
Регистрация: 28.11.2010
Сообщений: 31
21.12.2010, 20:23  [ТС]     массив #3
valeriikozlov, помоги разобраться в коде написанной тобой проги про массив, мне нужнгор разобраться что делается в теле цикла while? пожалуйста очень надо...заранее спасибо
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
21.12.2010, 21:33     массив #4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "stdio.h"
int main()
{
        const int N=9;
        int mas[N]={1,2,3,4,5,6,7,8,9}, l=0, r=N-1, i_temp, i, temp;
        while(l<r)// в переменной l левый край масива, который еще не подвергался замене элементов, в переменной r правый край элементов
        {
                i_temp=l;//изначально индекс минимального элемента в массиве считаем левый край массива
                for(i=l+1; i<=r; i++)// ищем минимальный элемент
                        if(mas[i_temp]>mas[i])
                                i_temp=i;
                temp=mas[l]; mas[l++]=mas[i_temp]; mas[i_temp]=temp;// меняем найденный минимальный элемент местами с элементом на левом краю массива (и увеличиваем значение левого края массива на 1)
                i_temp=r;// //изначально индекс следующего минимального элемента в массиве считаем правый край массива
                for(i=l; i<=r; i++)// ищем минимальный элемент
                        if(mas[i_temp]>mas[i])
                                i_temp=i;
                temp=mas[r]; mas[r--]=mas[i_temp]; mas[i_temp]=temp;// меняем найденный минимальный элемент местами с элементом на правом краю массива (и уменьшаем значение правого края массива на 1)
        }
        for(i=0; i<N; i++)
                printf("%d ", mas[i]);
        return 0;
}
stalker_asu
0 / 0 / 0
Регистрация: 28.11.2010
Сообщений: 31
21.12.2010, 21:52  [ТС]     массив #5
спасибо большое очень выручил
Yandex
Объявления
21.12.2010, 21:52     массив
Ответ Создать тему
Опции темы

Текущее время: 01:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru