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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Неправильно вычисляется корень квадратный http://www.cyberforum.ru/cpp-beginners/thread227485.html
qrt(x) не работает. pow(x,1/2) дает всегда 1.
C++ Не воспринимает тип данных Задача: Найти все натуральные n-значные числа, цифры в которых образуют строго возрастающую последовательность (например, 1234, 5789). решение на с++ в компиляторе BORLANDC: #include <iostream.h>... http://www.cyberforum.ru/cpp-beginners/thread227484.html
C++ Ввод данных
Такой код "ждёт" пока не введем данные string fam=""; cout<<"Vvedite Familiy:\n"; cin>>fam; Можно сделать условие, если ничего не ввел, оставить fam пустой, иначе запомнить данные?
C++ Двумерный массив чисел, не выполняется программа
Всем привет. уменя тут проблема с выполнением программы. задание такое: нужно вывести таблицу пифагора (по строкам и стоблцам), расчеты производить до n-го числа. я в c++ еще вообще зеленый,только...
C++ Как написать класс «несократимая дробь» (т.е. дроби 2/4, 4/8 и т.п. есть дробь 1/2)? http://www.cyberforum.ru/cpp-beginners/thread227471.html
Я только начанаю знакомство с C++. В классе реализовать следующие методы: конструкторы (по умолчанию, с параметрами, копирования), ввод с клавиатуры, вывод на экран (в виде методов класса и при...
C++ Посчитать выражение формулой Горнера, вопрос- как? Не представляю, как реализовать. С математикой проблемно из-за незаточенности(читать как - тупости) мышления в данном направлении(бывший гуманитарий) По заданным вещественным числам а(0),... подробнее

Показать сообщение отдельно
napalm2005
1 / 1 / 0
Регистрация: 08.12.2010
Сообщений: 40
17.01.2011, 23:37  [ТС]
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
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru