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

Массивы - C++

Восстановить пароль Регистрация
 
Васисуарий
0 / 0 / 0
Регистрация: 28.05.2010
Сообщений: 15
17.12.2010, 09:29     Массивы #1
Даны 2 массива целых чисел M1 и M2 размером n
Сформировать новый массив M3. В котором взяты элементы из M1 и M2. Отсортировать все массивы по убыванию.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2010, 09:29     Массивы
Посмотрите здесь:

C++ С++ массивы
Циклические массивы.одномерные массивы C++ Builder
Циклические массивы.одномерные массивы C++ Builder
C++ Массивы
C++ Массивы
Массивы структур и массивы строк C++ Builder
C++ Builder Массивы структур и массивы строк
C++ Builder Массивы структур и массивы строк

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
17.12.2010, 13:27     Массивы #2
Цитата Сообщение от Васисуарий Посмотреть сообщение
Даны 2 массива целых чисел M1 и M2 размером n
Сформировать новый массив M3. В котором взяты элементы из M1 и M2. Отсортировать все массивы по убыванию.
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
#include <iostream>
#include <ctime>
 
using namespace std;
 
void output(int *arr, int N)
{
    for(int i=0; i<N; i++)
    {
        cout<<arr[i]<<"  ";
    }
}
int* sort(int *arr, int N)
{
    int temp;
     for(int i=0; i<N; i++)
     {
         for(int j=i; j<N; j++)
         {
             if(arr[j]>arr[i])
             {
                 temp=arr[i];
                 arr[i]=arr[j];
                 arr[j]=temp;
             }
         }
     }
  return arr;
}
    
int main()
{
        srand((unsigned)(time(NULL)));
        int *arr,*arr2,*arr3;
        int N,k=0;
        cout<<"Enter N -> ";
        cin>>N;
        arr = new int[N];
        arr2= new int[N];
        arr3= new int[2*N];
        for(int i=0; i<N; i++)
         {
                    arr[i]=rand()%9;
                    arr2[i]=rand()%5;
                    arr3[k]=arr[i];
                    arr3[k+1]=arr2[i];
                    k+=2;
         }
        cout<<endl<<"Array 1 -> ";
        output(arr,N);
        cout<<endl<<"Array 2 -> ";
        output(arr2,N);
        cout<<endl<<"Array 3 -> ";
        output(arr3,2*N);
        //sorted arrays
        sort(arr,N);
        cout<<endl<<"Sorted array 1 -> ";
        output(arr,N);
        sort(arr2,N);
        cout<<endl<<"Sorted array 2 -> ";
        output(arr2,N);
        sort(arr3,2*N);
        cout<<endl<<"Sorted array 3 -> ";
        output(arr3,2*N);
    system("pause>>NULL");
   return 0;
}
Nameless One
Эксперт С++
 Аватар для Nameless One
5754 / 3403 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
17.12.2010, 14:53     Массивы #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
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
 
#define l_tr -10
#define r_tr  10
 
void checkptr(const int*);
void display(const int*, size_t, const char*);
int cmp(const void*, const void*);
 
int main(int argc, char** argv)
{
    if(argc != 2)
    {
        fprintf(stderr, "Usage: %s NUMBER\n", argv[0]);
        exit(1);
    } 
    srand((size_t) time(NULL));
    size_t n = atoi(argv[1]), i;
    
    if(n == 0)
    {
        fprintf(stderr, "Illegal number\n");
        exit(2);
    }
    
    int* m1 = malloc(n * sizeof(int));
    checkptr(m1);
    int* m2 = malloc(n * sizeof(int));
    checkptr(m2);
    int* m3 = malloc(2 * n * sizeof(int));
    checkptr(m3);
    
    for(i = 0; i < n; ++i)
    {
        m1[i] = rand() % (r_tr - l_tr + 1) + l_tr;
        m2[i] = rand() % (r_tr - l_tr + 1) + l_tr;
    }
    
    memcpy(m3, m1, n * sizeof(int));
    memcpy(m3 + n, m2, n * sizeof(int));
    
    printf("Before sorting:\n");
    display(m1, n, "M1");
    display(m2, n, "M2");
    display(m3, 2 * n, "M3");
    qsort(m1, n, sizeof(int), cmp);
    qsort(m2, n, sizeof(int), cmp);
    qsort(m3, 2 * n, sizeof(int), cmp);
    printf("After sorting:\n");
    display(m1, n, "M1");
    display(m2, n, "M2");
    display(m3, 2 * n, "M3");
    
    free(m1);
    free(m2);
    free(m3);
    exit(0);        
}
 
void checkptr(const int* ptr)
{
    if(!ptr)
    {
        fprintf(stderr, "Error allocating memory\n");
        exit(3);
    }
}
 
void display(const int* array, size_t n, const char* msg)
{
    size_t i;
    printf("%s:\n", msg);
    for(i = 0; i < n; ++i)
        printf("%d ", array[i]);
    putchar('\n');
}
 
int cmp(const void* pa, const void* pb)
{
    int a = *(int*)pa;
    int b = *(int*)pb;
    if(a < b)
        return -1;
    else if(b < a)
        return 1;
    else
        return 0;
}
Yandex
Объявления
17.12.2010, 14:53     Массивы
Ответ Создать тему
Опции темы

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