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

Удалить из массива все элементы с чётными индексами - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Формула http://www.cyberforum.ru/cpp-beginners/thread103108.html
помогите составить прогу
C++ Работа с файлом Здравствуйте,помогите пожалуйста сделать задание, очень срочно нужно,а я просто не знаю как программировать на этом языке :( Язык C (программа турбо С). Создать файл записей с полями: название книги, автор, год издания, количество страниц. Выполнить сортировку этого файла по величине, не записывая файл в память. http://www.cyberforum.ru/cpp-beginners/thread103103.html
C++ Вхождения первой буквы слова
Здравствуйте,помогите пожалуйста решить задачу на языке C.(программа турбо C). Дана строка, состоящая из слов, разделённых пробелами (одним или несколькими). Преобразовать каждое слово в строке, удалив из него все последующие вхождения первой буквы этого слова (количество пробелов между словами не изменять). Помогите пожалуйста студенту, завтра надо уже сдавать :( есть код на паскале,вроде...
C++ указатели на функции
Zdrastvuyte uvazshayemiye programisti . Vipolnial uprazshneniye : smisl zadachi sozdat massive ukazateley na functzii i organizovat tsikl primenyaya osnovnuyu functsiyu calcuate() dlia vizova etih sozdanih functsiy po ih ukazateliam no poskolku functsiya vozvrashaet odno znacheniye ya pitalsia vernut ukazatel na nachalo massiva no organizovivaya tsikl v main() ya poluchayu znacheniye kotoroye...
C++ Элементарные функции и массивы строк http://www.cyberforum.ru/cpp-beginners/thread103069.html
Ребята, помогите выполнить 2 задачки: 1. Запросить у пользователя в цикле 10 строк и посчитать сумму символов в введенных строках 2. Запросить у пользователя массив из 10 строк и добавить к каждой восклицательный знак Буду очень признателен! :)
C++ Требуется дописать программу С++ сорировка Требуется упорядочить матрицу по столбцам методом прямого выбора без использования дополнительного массива. Вот программа: #include <iostream.h> #include <conio.h> #include <iomanip.h> void input(int a, int n, int m); void output(int a, int n, int m); void sort (int a, int n, int m); подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
11.03.2010, 20:48     Удалить из массива все элементы с чётными индексами
KarinCHICK, вот Вам на С, сортировка только стандартная - терпения не хватило и это самому делать.
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
/*
*   1.Сформировать массив из n элементов с помощью датчика случайных чисел (n задается пользователем с клавиатуры) и вывести его.
*   2.Удалить из него все элементы с чётными индексами.
*   3.Добавить К элементов в конец массива
*   4.Выполнить такую перестановку в массиве: Поменять местами минимальный и максимальный элементы
*   5.Выполнить поиск первого отрицат.элемента
*   6.Отсортировать массив методом простого включения.
*/
 
/* возвращает указатель на элемент с минимальным значением */
int* minVal(int* arr, size_t cnt){
    int min_val, *p_min_val;
 
    p_min_val = arr;
    min_val = *p_min_val;
 
    while ( --cnt ){
        if ( *(++arr) < min_val ){
            p_min_val = arr;
            min_val = *p_min_val;
        }
    }
    return p_min_val;
}
 
/* возвращает указатель на элемент с максимальным значением */
int* maxVal(int* arr, size_t cnt){
    int max_val, *p_max_val;
 
    p_max_val = arr;
    max_val = *p_max_val;
 
    while ( --cnt ){
        if ( *(++arr) > max_val ){
            p_max_val = arr;
            max_val = *p_max_val;
        }
    }
    return p_max_val;
}
 
int valCmp(const void* a, const void* b){
    return *(int*)a - *(int*)b;
}
 
int main(void){
    int n, i, j, *arr, *odd, *pMin, *pMax, *pInt;
 
    srand(time(NULL));
 
    printf("Number of array elements: ");
    if ( scanf("%d", &n) != 1 || !n )
        exit(1);
    if ( ( arr = (int*)calloc(n, sizeof(int)) ) == NULL )
        exit(1);
    printf("Array:\n");
    for ( i = 0; i < n; ++i )
        printf("%d  ", ( arr[i] = rand() % 200 - 100 ));
    printf("\n");
    /* рассчёт размера массива для копирования нечётных элементов */
    j = n / 2;
    if ( ( odd = (int*)calloc(j, sizeof(int)) ) == NULL )
        exit(1);
    for ( i = 1, pInt = odd; i < n; i += 2 )
        *pInt++ = arr[i];
    /* удалить старый массив */
    free(arr);
    arr = odd;
    n = j;
    printf("Without even indexes:\n");
    for ( i = 0; i < n; ++i )
        printf("%d  ", arr[i]);
    printf("\n");
 
    printf("Number of elements for an adding: ");
    if ( scanf("%d", &j) != 1 || !j )
        exit(1);
    if ( ( arr = (int*)realloc(arr, (n + j) * sizeof(int)) ) == NULL )
        exit(1);
    for ( i = n; i < n + j; ++i )
        arr[i] = rand() % 200 - 100;
    n += j;
    printf("With new elements:\n");
    for ( i = 0; i < n; ++i )
        printf("%d  ", arr[i]);
    printf("\n");
 
    printf("Swap min and max values:\n");
    pMin = minVal(arr, n);
    pMax = maxVal(arr, n);
    j = *pMin;
    *pMin = *pMax;
    *pMax = j;
    for ( i = 0; i < n; ++i )
        printf("%d  ", arr[i]);
    printf("\n");
    for ( i = 0; i < n && arr[i] >= 0; ++i )
        ;
    if ( i < n )
        printf("First negative value is %d\n", arr[i]);
    else
        printf("No negative values found!\n");
    printf("Ascendant sorted:\n");
    qsort(arr, n, sizeof(int), valCmp);
    for ( i = 0; i < n; ++i )
        printf("%d  ", arr[i]);
    printf("\n");
 
    free(arr);
    exit(0);
}
 
Текущее время: 11:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru