Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
GaDinka
1 / 1 / 0
Регистрация: 01.02.2011
Сообщений: 68
1

Переместить каждый второй элемент массива в конец массива

22.12.2012, 09:25. Просмотров 516. Ответов 2
Метки нет (Все метки)

Доброго времени суток. Проверьте пожалуйста программу.
Задание: Написать программу, которая перемещает в конец исходного массива каждый второй элемент исходного массива. Запрещено использовать дополнительный массив.

Пишу в программе CodeBlocks 10.05

Вот мой вариант:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    int n,i,j,k;
    n=8;
    printf ("The source array\n");
float a[n];
{
    for (i=0; i<n; i++)//В цикле формируем массив
    a[i] = rand()%50;
    for (i=0; i<n; i++)
    printf ("%.2f\n", a[i]);
}
for(i=0;i<n;i++)
{
    if (i%2==1)//Ищем второй элемент
    j=a[i];//Дополнительной переменной присваиваем значение элемента массива
    a[7+1]=j;//Перемещаем найденной значение в конец массива
}
k=12;
printf ("The new array\n");
for (i=0; i<k; i++)
printf ("%.2f\n", a[i]);
    return;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2012, 09:25
Ответы с готовыми решениями:

Удалить каждый второй элемент заданного массива
Задание: удалить каждый второй элемент заданного массива, при этом новый массив не заводить. Вот...

Каждый второй элемент массива умножить на 2, а из каждого пятого элемента вычислить 5
1)Дан двумерный массив А (n , m). Каждый второй элемент умножить на 2, а из каждого пятого...

Положительные элементы массива переместить в начало, а отрицательные — в конец
Дана последовательность чисел неизвестной длинны. Нужно заполнить массив этими числами, а потом в...

Переместить в конец массива все его положительные элементы
Задание изменить исходный массив следующим образом: переместить в конец массива все его...

Переместить все серии максимальной длины в конец массива
Задан целочисленный массив размером N. Переместить все серии максимальной длины в конец массива, не...

2
vua72
418 / 417 / 167
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
23.12.2012, 13:16 2
Я бы с конца массива начинал, если n-четное, то первый требуемый элемент на месте, цикл начинаем с n-2, если нет, то c n-1, и меняем местами n-1 и n-2 и т.д.
Функция меняет местами два числа
C
1
2
3
4
5
6
7
void swap (int *a, int *b)
{
    int *temp;
    temp = a;
    a=b;
    b=temp;
}
C
1
2
for (i=n-1; i=0; i-=2)
        swap (a[n-1], a[n-2]);
и т.д.

C
1
i=n-1; или i=n-2;
Добавлено через 23 часа 48 минут
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <stdio.h>
#include <stdlib.h>
void pr_ar(int *a, int n)
{
    int i;
    printf("\n");
    for (i=0; i<n; ++i)
        printf ("%4d", *(a+i));
    printf("\n");
}
void shift (int *a, int n)
{
    int i=0, temp=0, k=0;
    printf("-------in shift--------\n");
    for (i=1; i<=n/2; ++i) {
        temp=a[i];
        for (k=i; k<n-1; ++k)
            a[k]=a[k+1];
        a[n-1]=temp;
        pr_ar(a,n);
    }
    printf("-------in shift--------\n");
}
int main(int argc, char **argv)
{
    int n=0;
    int i=0;
    printf ("Vveditr N: ");
    scanf ("%d", &n);
    int *arr=(int*)calloc(n, sizeof(int));
    for (i=0; i<n; ++i) arr[i]=i;//rand()%10;
    pr_ar(arr,n);
    shift(arr, n);
    pr_ar(arr,n);
    free(arr);
    return 0;
}
0
GaDinka
1 / 1 / 0
Регистрация: 01.02.2011
Сообщений: 68
23.12.2012, 16:10  [ТС] 3
Огромное спасибо!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.12.2012, 16:10

Переместить в конец массива все его отрицательные элементы
Вычислить сумму положительных элементов массива. Вывести на дисплей полученное значение. После...

Переместить в конец массива все элементы, значения которых находятся в отрезке [a,b]
написать программу, которая перемещает в конец массива все элементы, значения которых находится в...

В массиве все отрицательные элементы переместить в начало массива а остальные в конец
В одномерном массиве все отрицательные элементы перемещаются в начало массива а остальные в конец...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru