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

Функция с использованием массивов - C++

Восстановить пароль Регистрация
 
Grif1992
0 / 0 / 0
Регистрация: 06.10.2011
Сообщений: 50
25.11.2011, 14:52     Функция с использованием массивов #1
Помогите написать функцию,которая вставляет элементы в монотонно возрастающую последовательность с сохранением сортировки!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.11.2011, 14:58     Функция с использованием массивов #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<stdio.h>
#include<conio.h>
void Insert (int *a, int *pn, int x)
{
    int j;
    for(j = (*pn) - 1; j >= 0 && a[j] > x; j--)
        a[j+1] = a[j];
    a[j+1] = x;
    (*pn)++;
}
 
int main()
{
    int i, n, a[5] = {5, 4, 3, 2, 1};
    for(n = 1; n < 5; )
        Insert(a, &n, a[n]);
    for(i = 0; i < n; i++)
        printf("%d ", a[i]);
    getch();
    return 0;
}
Grif1992
0 / 0 / 0
Регистрация: 06.10.2011
Сообщений: 50
25.11.2011, 15:00  [ТС]     Функция с использованием массивов #3
Можно с пояснениями...
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.11.2011, 15:01     Функция с использованием массивов #4
Цитата Сообщение от Grif1992 Посмотреть сообщение
Можно с пояснениями...
Конечно, но прежде почитайте описание алгоритма сортировки вставками
Grif1992
0 / 0 / 0
Регистрация: 06.10.2011
Сообщений: 50
25.11.2011, 15:25  [ТС]     Функция с использованием массивов #5
И еще, можно написать эту задачу через эту программу?
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
#include <stdio.h>
#include <locale.h>
const int N=100;
void inMas1(int &n,int a[N])
{ 
    //Ввод n
    printf(" введите количество n\t");
    scanf("%d",&n);
    for (int i=0; i<n; i++)
    {
        //Ввод а[i]
        printf("\t a[%d]=",i);
        scanf("%d",&a[i]);
    }
}
void outMas1(int k, int c[N])
{
    for (int i=0; i<k; i++)
    printf("%d",c[i]);
    
}
void Obedin(int n, int a[N], int m,int b[N],int &k,int c[N])
{
    //Начальное присвоение c=a
        k=n;
 
    for (int i=0; i<n; i++)
    {
        c[i]=a[i];
    }
    //Добавить не достающие элементы из b, просмотр элементво из b
        for (int i=0;i<m; i++)
        { 
            //обработка b[i], Цикл просмотра массива 
            int j=0; 
            bool flagNo=true;
            while ((flagNo)&&(j<n))
            {
                if (a[j]==b[i])
                {
                    flagNo=false;
                }
                j++;
            }
            if (flagNo)
            {
                //добавление b[i] в c
                c[k]=b[i];
                k++;
            }
        }
}
void main()
{
    setlocale(LC_ALL,"russian");
    //определение переменных 
    int n,m,k,a[N],b[N],c[N];
    //Ввод исходных данных
    inMas1(n,a);
    inMas1(m,b);
    Obedin(n,a,m,b,k,c);
    //вывод результата 
    outMas1(k,c);
}
Yandex
Объявления
25.11.2011, 15:25     Функция с использованием массивов
Ответ Создать тему
Опции темы

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