Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
hop_hey
1 / 1 / 1
Регистрация: 18.11.2012
Сообщений: 54
#1

Распечатать массив по возрастанию модулей элементов - C++

07.04.2013, 19:28. Просмотров 281. Ответов 2
Метки нет (Все метки)

Здравствуйте. У меня возникла некоторая проблема: задача: найти наибольший и наименьший элемент в трех массивах. Распечатать каждый массив в порядке возрастания модулей элементов. Массивы одномерные.
Я реализовал всю задачу. Работает она почти правильно. вся ошибка в печати элементов по возрастанию. Я не понимаю почему так, точки останова меня ни к чему не привели. Вот пример сортировки по возрастанию:
Код
Массивы по возрастанию:
1 2 3 4 5 6
1
7 8 9 10 11 12
7 
13 14 15 16 17 18
13
почему через строчку он записывает первый элемент массива: как от этого избавиться
Основной код программы:
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
// 9_1_18.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <math.h>
#include <stdio.h>
#include <conio.h>
#include <locale>
#include <iostream>
#include <ctime>
 
using namespace std;
int print_mass(int *mas1, int n)
{
    setlocale(LC_ALL,"Russian");
    cout<<"Массив:"<<endl;
    for(int i=0;i<n;i++)
        {
        cout<<" "<<mas1[i];
        }
    cout<<endl;
return 0;
}
int minim(int massive[], int n)
{
    int i,min;
        min=massive[0];
        for (i=1;i<6;++i)
        {
        if(min>massive[i])
            min=massive[i];
        }
    return min;
}
int maxim(int massive[], int n)
{
    int i,j;
    int max;
    max=massive[0];
    for (i=1;i<n;++i)
    {
        if(massive[i]>max)
            max=massive[i];
    }
    return max;
}
int module(int massive[], int n)
{
    int i,j,temp;
    for(i=0;i<n;i++)
    {
    massive[i]=labs(massive[i]);
    }
    for(i=0;i<n;i++)
     printf("%d ",massive[i]);cout<<endl;
    /*sortirovka v poryadke vozrastaniya*/
    for (i=0;i<n-1;++i) 
    for (j=0;j<n-1;++j) 
        if(massive[j] > massive[j+1]) 
        { 
            temp = massive[j]; 
            massive[j] = massive[j+1]; 
            massive[j+1] = temp; 
        }
 
    return *massive;
}
void main()
{  const int k=6;
    int* m1=new int [k];
    int* m2=new int [k];
    int *m3=new int [k];
    srand(time(NULL));
    for (int i=0;i<k;i++)
    {
        m1[i]=rand()%25-10;
        m2[i]=rand()%45-15;
        m3[i]=rand()%20-5;
    }
    print_mass(m1,k);
    print_mass(m2,k);
    print_mass(m3,k);
    cout<<endl<<"=================================================";
    cout<<endl<<"Минимальный элемент 1 массива:"<<minim(m1,k);
    cout<<endl<<"Минимальный элемент 2 массива:"<<minim(m2,k);
    cout<<endl<<"Минимальный элемент 3 массива:"<<minim(m3,k)<<endl;
    cout<<"================================================="<<endl;
    cout<<"Максимальный элемент 1 массива:"<<maxim(m1,k);
    cout<<endl<<"Максимальный элемент 2 массива:"<<maxim(m2,k);
    cout<<endl<<"Максимальный элемент 3 массива:"<<maxim(m3,k)<<endl;
    cout<<"Массивы по модулю:"<<endl;
    module(m1,k);
    module(m2,k);
    module(m3,k);
    cout<<"Массивы по возрастанию"<<endl;
    cout<<module(m1,k)<<endl;
    cout<<module(m2,k)<<endl;
    cout<<module(m3,k)<<endl;
    delete []m1;
    delete []m2;
    delete []m3;
_getch();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.04.2013, 19:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Распечатать массив по возрастанию модулей элементов (C++):

Упорядочить массив по возрастанию модулей элементов - C++
Помогите пожалуйста с этой задачей: упорядочить массив Х за возрастанием модулей. Заранее благодарен.

Отсортировать массивы по возрастанию модулей элементов - C++
Шаблоны функций. Даны натуральные числа n и m, целые числа a1, a2,...,an, b1, b2,...,bm. Среди a1, a2,...,an нет повторяющихся чисел,...

Упорядочить элементы массива по возрастанию модулей элементов - C++
В одномерном массиве, состоящем из n вещественных элементов. Упорядочить элементы массива по возрастанию модулей элементов. Даже не...

Упорядочить элементы массива по возрастанию модулей элементов - C++
В одномерном массиве,состоящем из N вещественных элементов,вычислить: 1)кол-во элементов массива,равных 0; 2)сумму элементов...

Упорядочить элементы одномерного массива по возрастанию модулей элементов - C++
Упорядочить элементы одномерного массива по возрастанию модулей элементов. если можно еще

В однородном массиве упорядочить элементы массива по возрастанию модулей элементов - C++
В однородном массиве, состоящем из n вещественных элементов, вычислить: - Упорядочить элементы массива по возрастанию модулей элементов; ...

2
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
07.04.2013, 19:41 #2
hop_hey,

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
#include "stdafx.h"
#include <math.h>
#include <stdio.h>
#include <conio.h>
#include <locale>
#include <iostream>
#include <ctime>
 
using namespace std;
int print_mass(int *mas1, int n)
{
    setlocale(LC_ALL,"Russian");
    cout<<"Массив:"<<endl;
    for(int i=0;i<n;i++)
        {
        cout<<" "<<mas1[i];
        }
    cout<<endl;
return 0;
}
int minim(int massive[], int n)
{
    int i,min;
        min=massive[0];
        for (i=1;i<6;++i)
        {
        if(min>massive[i])
            min=massive[i];
        }
    return min;
}
int maxim(int massive[], int n)
{
    int i;
    int max;
    max=massive[0];
    for (i=1;i<n;++i)
    {
        if(massive[i]>max)
            max=massive[i];
    }
    return max;
}
int module(int massive[], int n)
{
    int i,j,temp;
    for(i=0;i<n;i++)
    {
    massive[i]=labs(massive[i]);
    }
    for(i=0;i<n;i++)
     printf("%d ",massive[i]);cout<<endl;
    /*sortirovka v poryadke vozrastaniya*/
    for (i=0;i<n-1;++i) 
    for (j=0;j<n-1;++j) 
        if(massive[j] > massive[j+1]) 
        { 
            temp = massive[j]; 
            massive[j] = massive[j+1]; 
            massive[j+1] = temp; 
        }
 
    return *massive;
}
void main()
{  const int k=6;
    int* m1=new int [k];
    int* m2=new int [k];
    int *m3=new int [k];
    srand(time(NULL));
    for (int i=0;i<k;i++)
    {
        m1[i]=rand()%25-10;
        m2[i]=rand()%45-15;
        m3[i]=rand()%20-5;
    }
    print_mass(m1,k);
    print_mass(m2,k);
    print_mass(m3,k);
    cout<<endl<<"=================================================";
    cout<<endl<<"Минимальный элемент 1 массива:"<<minim(m1,k);
    cout<<endl<<"Минимальный элемент 2 массива:"<<minim(m2,k);
    cout<<endl<<"Минимальный элемент 3 массива:"<<minim(m3,k)<<endl;
    cout<<"================================================="<<endl;
    cout<<"Максимальный элемент 1 массива:"<<maxim(m1,k);
    cout<<endl<<"Максимальный элемент 2 массива:"<<maxim(m2,k);
    cout<<endl<<"Максимальный элемент 3 массива:"<<maxim(m3,k)<<endl;
    cout<<"Массивы по модулю:"<<endl;
    module(m1,k);
    module(m2,k);
    module(m3,k);
    cout<<"Массивы по возрастанию"<<endl;
    module(m1,k);
    module(m2,k);
    module(m3,k);
    delete []m1;
    delete []m2;
    delete []m3;
_getch();
}
вы выводили массив в функции а потом еще возвращали указатель на начало(на первый элемент массива) и еще его выводили.
1
hop_hey
1 / 1 / 1
Регистрация: 18.11.2012
Сообщений: 54
07.04.2013, 19:54  [ТС] #3
Спасибо большое ^^
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2013, 19:54
Привет! Вот еще темы с ответами:

Дано одномерный массив Р, который состоит из 12 элементов. Вычислить сумму модулей всех от "объемных элементов * превышающих числа А (А = 1.25) - C++
Помогите пожалуйста с задачкой Дано одномерный массив Р, который состоит из 12 элементов. Вычислить сумму модулей всех от &quot;объемных...

Массив: Сформируйте массив C[n+m], состоящий из элементов массивов А и В, упорядоченный по возрастанию. - C++
написать программы! Вот задания! Я болел и просто не успею все зделать! 1)Дан массив целых чисел. Воспользовавшись указателями,...

Сформировать массив из модулей суммы элементов исходного массива - C++
помогите написать на языке с++. Заранее СПАСИБО!

Найти мах из модулей элементов, используя одномерный массив - C++
Дана последовательность из n действительных чисел. Найти мах из модулей элементов, используя одномерный массив


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

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

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