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

Одномерный массив - C++

Восстановить пароль Регистрация
 
Настя))
 Аватар для Настя))
0 / 0 / 0
Регистрация: 10.12.2010
Сообщений: 8
26.12.2010, 14:18     Одномерный массив #1
Дан массив n целых чисел. Если исходный массив упорядочен по возрастанию, то создать новый массив, записав в него все элементы исходного массива по убыванию. Надо написать эту задачу в статике и в динамике, у кого нибудь есть хоть какие-то мысли относительно решения?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2010, 14:18     Одномерный массив
Посмотрите здесь:

Дан двумерный массив размерностью 4*5. Сформировать одномерный массив C++
Массив: найти номера столбцов с положительными элементами и записать их в одномерный массив C++
Создать одномерный массив, заполнить его случайными значениями, отсортировать массив по убыванию C++
Сформировать одномерный массив, удалить первый элемент с заданным значением, сдвинуть массив циклически C++
Как сложить массив чтоб получился одномерный массив? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
26.12.2010, 15:13     Одномерный массив #2
два в одном
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
#include <stdio.h>
#include <stdlib.h>
 
void reverse_copy(int * dst, int * src, size_t cnt){
    int * ptr = src + cnt;
    while ( ptr > src )
        *dst++ = *--ptr;
}
 
void dump(int * arr, size_t cnt){
    while ( cnt-- )
        printf("%d%c", *arr++, ( cnt ) ? ' ' : '\n');
}
 
int test_ascendant(int * arr, size_t cnt){
    return ( cnt < 2 ) ? 0 : ( *arr >= *(arr + 1) ) ? -1 : test_ascendant(arr + 1, cnt - 1);
}
 
#define SIZE 5
 
int main(void){
    int statA[SIZE], statB[SIZE], * dinA, * dinB, i;
    
    printf("Static array input:\n");
    for ( i = 0; i < SIZE; ++i ){
        printf("ARRAY[%d] = ", i);
        scanf("%d", &statA[i]);
    }
    
    if ( test_ascendant(statA, SIZE) )
        printf("Array is'nt sorted ascendant!\n");
    else {
        reverse_copy(statB, statA, SIZE);
        printf("ASC:  ");
        dump(statA, SIZE);
        printf("DESC: ");
        dump(statB, SIZE);
    }
    
    printf("\n\nDinamyc array input:\n");
    if ( ( dinA = (int*)malloc(sizeof(int) * SIZE) ) == NULL ){
        perror("malloc");
        exit(1);
    }
    for ( i = 0; i < SIZE; ++i ){
        printf("ARRAY[%d] = ", i);
        scanf("%d", &dinA[i]);
    }
    
    if ( test_ascendant(dinA, SIZE) )
        printf("Array is'nt sorted ascendant!\n");
    else {
        if ( ( dinB = (int*)malloc(sizeof(int) * SIZE) ) == NULL ){
            perror("malloc");
            free(dinA);
            exit(1);
        }
        reverse_copy(dinB, dinA, SIZE);
        printf("ASC:  ");
        dump(dinA, SIZE);
        printf("DESC: ");
        dump(dinB, SIZE);
        free(dinB);
    }
    free(dinA);
    
    exit(0);
}
abyr
4 / 4 / 1
Регистрация: 23.12.2010
Сообщений: 27
26.12.2010, 15:48     Одномерный массив #3
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
#include <cstdlib>
#include <iostream>
using namespace std;
 
int main(int argc, char** argv) {
    const int n = 10;
    int a[n] = {-31, -22, -13, -4, 51, 61, 71, 81, 91, 110}, b[n], x = 0, j = 0;
    cout << "\nИсходный массив - ";
    for ( int i = 0; i < n; i++ ) cout << a[i] << " ";
    cout << "\n\n";
    for ( int i = 0; i < n; i++ ) {
        if (a[i] > a[i+1]) x += 1;
    }
    if ( x != 0 ) cout << "Ошибка! Исходный массив не упорядочен по возрастанию";
    else {
        cout << "Полученный массив - ";
        for ( int i = n-1; i >= 0; i-- ) {
            b[j] = a[i];
            cout << b[j] << " ";
            j++;
        }
    }
    cout << "\n\n";
    return 0;
}
в статике
Настя))
 Аватар для Настя))
0 / 0 / 0
Регистрация: 10.12.2010
Сообщений: 8
26.12.2010, 16:00  [ТС]     Одномерный массив #4
Спасибо)))=***
Yandex
Объявления
26.12.2010, 16:00     Одномерный массив
Ответ Создать тему
Опции темы

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