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

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

Войти
Регистрация
Восстановить пароль
 
napalm2005
1 / 1 / 0
Регистрация: 08.12.2010
Сообщений: 40
#1

Задан вещественный массив размера N pelles c - C++

12.01.2011, 00:19. Просмотров 834. Ответов 4
Метки нет (Все метки)

Задан вещественный массив размера N. Найти сумму второго максимума и третьего минимума массива. Все элементы, расположенные между ними, отсортировать в порядке возрастания. Пример:
0 8 6 4 7 2 1 4 9 3 → 10, 0 8 4 6 7 2 1 4 9 3
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2011, 00:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задан вещественный массив размера N pelles c (C++):

pelles c Задан целочисленный массив размера N - C++
Задан целочисленный массив размера N. Отсортировать серии в массиве в порядке убывания их длины.

Задан вещественный массив размера N. Создать целочисленный массив такого же размера, в котором будут записаны индексы исходного массива в порядке во - C++
Помогите с задачей: Задан вещественный массив размера N. Создать целочисленный массив такого же размера, в котором будут записаны...

Задан вещественный массив из N. - C++
Ребят, нужна опять ваша помощь. Задан вещественный массив из N. Упорядочить его по возрастанию методом быстрой сортировки: выбрать...

Дан вещественный массив размера N. Проверить чередуются ли в нем положительные и отрицательные числа - C++
Дан вещественный массив размера N. Проверить чередуются ли в нем положительные и отрицательные числа. (Да, Нет) Помогите пожалуйста...

Задан массив размера N. Определить число положительных элементов в массиве - C++
Задан массив размера N. Определить число положительных элементов в массиве. С++

Задан целочисленный массив размера N. Отсортировать серии в массиве в порядке убывания их длины - C++
В общем, есть две задачи, ух на какую же веселую и ни черта не понятную для меня тему. 1. Задан целочисленный массив размера N....

4
igorrr37
1648 / 1276 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
12.01.2011, 03:53 #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
#include<iostream>
#include<ctime>
#include<algorithm>
using namespace std;
 
int main(){
    int n, max1=0, max2=0, min1=0, min2=0, min3=0;
    cout<<"N= ";
    cin>>n;
    srand(time(0));
    float *mas=new float[n];
    cout<<"\n\n";
    for(int i=0;i<n;i++){
        mas[i]=rand()%100-50.5;
        cout<<mas[i]<<"   ";
    }
    for(int i=0;i<n;i++){
        if(mas[i]>mas[max1])max1=i;
    }
    for(int i=0;i<n;i++){
        if(mas[i]>mas[max2]&&mas[i]!=mas[max1])max2=i;
    }
    for(int i=0;i<n;i++){
        if(mas[i]<mas[min1])min1=i;
    }
    for(int i=0;i<n;i++){
        if(mas[i]<mas[min2]&&mas[i]!=mas[min1])min2=i;
    }
    for(int i=0;i<n;i++){
        if(mas[i]<mas[min3]&&mas[i]!=mas[min1]&&mas[i]!=mas[min2])min3=i;
    }
    cout<<"\n\nmax2= "<<mas[max2]<<", min3= "<<mas[min3]<<endl;
    cout<<"sum= "<<mas[max2]+mas[min3]<<"\n\n";
    max2<min3?sort(mas+max2+1, mas+min3):sort(mas+min3+1, mas+max2);
    for(int i=0;i<n;i++) cout<<mas[i]<<"   ";
}
0
napalm2005
1 / 1 / 0
Регистрация: 08.12.2010
Сообщений: 40
12.01.2011, 13:55  [ТС] #3
Цитата Сообщение от igorrr37 Посмотреть сообщение
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
#include<iostream>
#include<ctime>
#include<algorithm>
using namespace std;
 
int main(){
    int n, max1=0, max2=0, min1=0, min2=0, min3=0;
    cout<<"N= ";
    cin>>n;
    srand(time(0));
    float *mas=new float[n];
    cout<<"\n\n";
    for(int i=0;i<n;i++){
        mas[i]=rand()%100-50.5;
        cout<<mas[i]<<"   ";
    }
    for(int i=0;i<n;i++){
        if(mas[i]>mas[max1])max1=i;
    }
    for(int i=0;i<n;i++){
        if(mas[i]>mas[max2]&&mas[i]!=mas[max1])max2=i;
    }
    for(int i=0;i<n;i++){
        if(mas[i]<mas[min1])min1=i;
    }
    for(int i=0;i<n;i++){
        if(mas[i]<mas[min2]&&mas[i]!=mas[min1])min2=i;
    }
    for(int i=0;i<n;i++){
        if(mas[i]<mas[min3]&&mas[i]!=mas[min1]&&mas[i]!=mas[min2])min3=i;
    }
    cout<<"\n\nmax2= "<<mas[max2]<<", min3= "<<mas[min3]<<endl;
    cout<<"sum= "<<mas[max2]+mas[min3]<<"\n\n";
    max2<min3?sort(mas+max2+1, mas+min3):sort(mas+min3+1, mas+max2);
    for(int i=0;i<n;i++) cout<<mas[i]<<"   ";
}
Не подходит, нужен язык си.
0
napalm2005
1 / 1 / 0
Регистрация: 08.12.2010
Сообщений: 40
17.01.2011, 23:37  [ТС] #4
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
#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char *argv[])
{
    int n;
    printf("Enter size of massive ");
    scanf("%d", &n);
 
 
    double arr[n];
    for(int i = 0; i < n; i++){
    printf("arr[%d] ", i);
        scanf("%lf", &arr[i]);}
    printf("\n prostoi massiv \n");
    for(int i = 0; i < n; i++){
    printf("%lf ", arr[i]);}
    
    double max = arr[0];
 
    for(int pos = 0; pos < n; pos++)
    {
            if(max < arr[pos +1]){
            max = arr[pos+1];
        }
    
    }
    
    printf("\n max = %5.lf", max);
 
 
    printf("\n sorted: \n");
    for (int x = 0; x < n; x++) {
        printf("%lf ", arr[x]);
    }
    return 0;
}
Вроде бы кое-как разобрался, удалось получить первй максимум, но, удается его получить только на положительных числах, как только я начинаю вводить отрицательные числа в значении максимального тупо выбивает 0. Вопрос один, почему так происходит.

Добавлено через 4 минуты
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
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
int main(int argc, char *argv[])
{
    int n;
    printf("Enter size of massive ");
    scanf("%d", &n);
 
 
    double arr[n];
    for(int i = 0; i < n; i++){
    printf("arr[%d] ", i);
        scanf("%lf", &arr[i]);}
    printf("\n prostoi massiv \n");
    for(int i = 0; i < n; i++){
    printf("%lf ", arr[i]);}
    
    double max = arr[0];
 
    for(int pos = 1; pos < n; pos++)
    {
            if(max < arr[pos]){
            max = arr[pos];
        }
    
    }
    
    printf("\n max = %lf", max);
 
 
    printf("\n sorted: \n");
    for (int x = 0; x < n; x++) {
        printf("%lf ", arr[x]);
    }
    return 0;
}
Чутка поменял и все стало здорово. Все, можно тему закрывать.

Добавлено через 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
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
int main(int argc, char *argv[])
{
    int n;
    printf("Enter size of massive ");
    scanf("%d", &n);
 
 
    double arr[n];
    for(int i = 0; i < n; i++){
    printf("arr[%d] ", i);
        scanf("%lf", &arr[i]);}
    printf("\n prostoi massiv \n");
    for(int i = 0; i < n; i++){
    printf("%lf ", arr[i]);}
    
    double max = arr[0];
 
    for(int pos = 1; pos < n; pos++)
    {
            if(max < arr[pos]){
            max = arr[pos];
        }
    
    }
    
    double max2;
 
    for(int pos = 1; pos < n; pos++)
    {
            if(max2 < arr[pos] && max > max2){
            max2 = arr[pos];
        }
    
    }
    
    printf("\n max2 = %lf", max2);
 
    printf("\n sorted: \n");
    for (int x = 0; x < n; x++) {
        printf("%lf ", arr[x]);
    }
    return 0;
}
Хотя, пока закрывать рано, есть непонятки со вторым максимумпри отрицательных числах, то бишь, выбивается почему-то первый максимум.

Добавлено через 1 час 55 минут
И еще один вопрос, можно ли вытащить элемент из цикла и задействовать его в новом цикле?

Добавлено через 4 часа 7 минут
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
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
int main(int argc, char *argv[])
{
    unsigned int n;
    printf("Enter size of massive ");
    scanf("%d", &n);
 
 
    double arr[n];
    for(int i = 0; i < n; i++){
    printf("arr[%d] ", i);
        scanf("%lf", &arr[i]);}
    printf("\n prostoi massiv \n");
    for(int i = 0; i < n; i++){
    printf("%lf ", arr[i]);}
    
       double max = arr[0];
         for(int pos = 1; pos < n; pos++)
        {
                        if(max < arr[pos]){
                        max = arr[pos];
                }
        
        }
        printf("\n max = %lf", max);
    double min = arr[0];
         for(int pos = 1; pos < n; pos++)
        {
                        if(min > arr[pos]){
                        min = arr[pos];
                }
        
        }
        printf("\n min = %lf", min);
 
            double max2 = min;
    for(int pos = 0; pos < n; pos++)
        {
                        if(max2 < arr[pos] && arr[pos] < max){
                        max2 = arr[pos];
                }
        
        }
        printf("\n max2 = %lf", max2);
    
            double min2 = max;
    for(int pos = 0; pos < n; pos++)
        {
                        if(min2 > arr[pos] && arr[pos] > min){
                        min2 = arr[pos];
                }
        
        }
        printf("\n min2 = %lf", min2);
    
            double min3 = max;
    for(int pos = 0; pos < n; pos++)
        {
                        if(min3 > arr[pos] && arr[pos] > min2){
                        min3 = arr[pos];
                }
        
        }
        printf("\n min3 = %lf", min3);
 
    int o =0; int p = 0;
    
    for(int i = 0; i < n; i ++){
        if(max2==arr[i])
            o = i;
    }
    printf(" \n max2 na pozitcii %i  \n", o);
 
    for(int i = 0; i < n; i ++){
        if(min3==arr[i])
            p = i;
    }
    printf(" \n min3 na pozitcii %i  \n", p);
 
    int z; int y;
    if(n<p){
        z = o-1;
        y = p+1;
 
    }
    else if(p<n){
    z = o+1;
    y = p-1;
    }
 
    for(int pos = 0; pos <n; pos++){
    for(int x = pos+1; x <n; x++)
        {
            if(arr[pos] > arr[x] && arr[pos] != max2 && arr[pos] != min3 && arr[x] != max2 && arr[x] != min3){
            int mizer = arr[x];
                arr[x] = arr[pos];
                arr[pos] = mizer;
            }
        }
    }
 
    printf("\n sorted: \n");
    for (int x = 0; x < n; x++) {
        printf("%lf ", arr[x]);
    }
    return 0;
}
Получил третий минимум и второй максимум соответственно, осталось отсортировать элементы, которые между ними.
0
napalm2005
1 / 1 / 0
Регистрация: 08.12.2010
Сообщений: 40
19.01.2011, 12:48  [ТС] #5
Так, эту тему можно закрывать, все нормально ужеполчил и сделал.
0
19.01.2011, 12:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.01.2011, 12:48
Привет! Вот еще темы с ответами:

Дан массив A размера N. Сформировать новый массив B того же размера по следующему правилу: - C++
Помогите решить задачу на языке с++ Дан массив A размера N. Сформировать новый массив B того же размера по следующему правилу: элемент...

Дан вещественный массив А[N]. Сформировать массив В[3] следующим образом: - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main() { setlocale (LC_CTYPE,...

вещественный массив - C++
Вообщем у меня такая проблема: У меня скоро зачёт, а я не фига не знаю про программу С++...=((( Вообщем мне надо ответить на такие...

вещественный массив - C++
Здравствуйте подскажите как переделать массив целых чисел ввещественный


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

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

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