Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.91/35: Рейтинг темы: голосов - 35, средняя оценка - 4.91
5 / 5 / 1
Регистрация: 03.10.2014
Сообщений: 76
1

Найти минимальное и максимальное значение в последовательности простых чисел

06.01.2016, 15:40. Показов 7061. Ответов 39
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
1) У меня не работает void main().
>> [Error] '::main' must return 'int'

Пишешь
C++
1
2
3
4
int main()
{
return 0;
}
- работает без нареканий, а c void - нет.

2) Хочу добавить нахождение минимального значения. Вместе они не хотят работать. И ещё. Когда вводишь не число, а символ, программа зацикливается. Есть стандартные средства противодействия такому безобразию или меня спасет только проверка условием? И для всех последующих программ нужно делать набор таких условий?
// Detecting maximum number from series of whole positive numbers.
// The length of the series number is not limit.
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
#include <iostream>
 
int main()
{
    int n=0, a;
    int max=0, min = a; 
    printf("Detecting maximum number from series of whole");
    printf("positive numbers. The length of the series number is not limit.\n");
    do
        {
            printf("-> ");
            scanf("%i", &a);
            if (a)
            {
                if ( a > max)
                    max = a;
                if ( a < min)
                    min = a;
                n++;
            }           
        }
    while ( a > 0);
    printf("Numbers were entered: %i.\n", n);
    printf("Maximum number is %i\n", max);
    printf("Minimum number is %i\n", min);
    system("pause");
    return 0;
}
 
3) Когда проверяешь одно число, всё правильно считает, а если хочется выяснить наличие простых чисел на промежутке - ошибка. То, что не работает, в многострочном комментарии.
// Program checks up if a number is simple.
#include <iostream>
int main()
{
    int a, answ, i, p, l;
    printf("Program checks up if a number is simple.\n");
//  printf("Do you want to check up your number or to see the series of simple numbers?\n");
//  printf("Your number = 0, other = 1: ");
//  scanf("%i", &answ);
    p =2; // Start to divide on two.
/*  if (answ)
    {
        printf("Input down limin of the series number: ");
        scanf("%i", &i);
        printf("Input up limit of the series number: ");
        scanf("%i", &l);
        for ( i; i <= l; i++)
        {   
            if(i>=p)
            {
                do
            {
                a = i % p;
                if ( a != 0) p++;
            }while ( a != 0);
            if (p==i)
                printf("%i is a simple number.\n", i);
            else 
                printf("%i is not a simple number.\n", i);  
            }           
        }
    }
    else
    {*/
        printf("Input whole number: ");
        scanf("%i", &i);
        do
        {
            a = i % p;
            if ( a != 0) p++;
        }
        while ( a != 0);
        if (p==i)
            printf("%i is a simple number.\n", i);
        else printf("%i is not a simple number.\n", i);
    system("pause");
    return 0;
}
Win7.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.01.2016, 15:40
Ответы с готовыми решениями:

В последовательности случайных чисел найти минимальное и максимальное число в каждой последовательности(без массивов)
Очень нужна помощь! В последовательности случайных чисел найти минимальное и максимальное число...

Найти минимальное и максимальное значение последовательности
Нужна помощь с задачей. Нужно разработать алгоритм и написать программный код в среде...

Найти максимальное и минимальное из чисел последовательности
Даны натуральное число n и вещественные числа x1, x2, ..., xn. Найти: а) максимальное из...

Задана последовательность чисел длиной n. Определить минимальное и максимальное значение этой последовательности ...
Задана последовательность чисел длиной n. Определить минимальное и максимальное значение этой...

39
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
06.01.2016, 17:33 2
void main() - это не по стандарту языка.
Так что, в принципе, и не должно работать.
0
Любитель чаепитий
3742 / 1798 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
06.01.2016, 17:39 3
Salah_Addin, void main() - это из языка C, a в С++ принято писать int main(), ну как принято, иначе не скомпилируется.
0
5 / 5 / 1
Регистрация: 03.10.2014
Сообщений: 76
06.01.2016, 18:17  [ТС] 4
А остальные вопросы? Хотя задачник, с которым работаю, называется "...++", и примеры с void используются.

Добавлено через 9 минут
Про void прочитал в другой теме - разобрались. Теперь остальные вопросы. Почему минимум и максимум не хотят работать вместе? Надо вводить другую переменную? В третьем задании у машины нет, на мой взгляд, причин неправильно определять простые числа на заданном промежутке - этот же код с одним числом дает правильный ответ.
0
Любитель чаепитий
3742 / 1798 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
06.01.2016, 18:19 5
Salah_Addin, Какое конкретно задание? Все, если их там несколько.
0
5 / 5 / 1
Регистрация: 03.10.2014
Сообщений: 76
06.01.2016, 18:30  [ТС] 6
Я написал всего три пункта в посте. С первым разобрались. Теперь задача на нахождение максимального числа (хочу добавить нахождение минимального), и задача на проверку "простое ли число?" Они оформлены как код С++ в первом посте (сам вопрос и код).

Добавлено через 1 минуту
Задания обозначены арабской цифрой со скобкой >> 2) .
0
Любитель чаепитий
3742 / 1798 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
06.01.2016, 18:32 7
Цитата Сообщение от Salah_Addin Посмотреть сообщение
C++
1
2
int n=0, a;
int max=0, min = a;
В 1-й строке переменная а инициализируется мусором.
Во 2-й строке вы приравниваете min к a, то есть инициализируете её тем же мусором, потом проверки и т.д.
0
5 / 5 / 1
Регистрация: 03.10.2014
Сообщений: 76
06.01.2016, 18:38  [ТС] 8
В С++ есть как в Python или С#>> s= int.Parse(Console.read()); ? Чтобы не зацикливалось при вводе символа.

Добавлено через 3 минуты
makfak, значит ли это, что все объявляемые переменные надо инициализировать по принципу "чем раньше, тем лучше"?
Однако, max я тоже приравнял к а, но он все отлично выводит.
0
Любитель чаепитий
3742 / 1798 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
06.01.2016, 18:43 9
Salah_Addin, Как раз таки max вы приравняли к 0.
0
5 / 5 / 1
Регистрация: 03.10.2014
Сообщений: 76
06.01.2016, 18:44  [ТС] 10
Только что запустил код, в котором поменял только эти строки:
C++
1
2
3
int n=0, a=0;
int max=0, min = a; 
printf("Detecting...
Тем не менее, min не выведен. Ошибка явно не здесь. Можно несколько ссылок, почему ранняя инициализация переменных улучшает программу?
0
Любитель чаепитий
3742 / 1798 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
06.01.2016, 18:45 11
Тем более я замечал, что мусор чаще всего отрицательный, поэтому переменная max приравненная к а на 1-же итерации станет нормальной.
0
5 / 5 / 1
Регистрация: 03.10.2014
Сообщений: 76
06.01.2016, 18:47  [ТС] 12
C++
1
2
int n=0, a=0;
int max=0, min = 0;
Результат:
Detecting maximum number from series of wholepositive numbers. The length of the
series number is not limit.
-> 5
-> 1
-> 6
-> 8
-> 0
Numbers were entered: 4.
Maximum number is 8
Minimum number is 0
0
Любитель чаепитий
3742 / 1798 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
06.01.2016, 18:48 13
Salah_Addin, Я не говорил, что ранная инициализация улучшает программу!
Цитата Сообщение от Salah_Addin Посмотреть сообщение
C++
1
2
3
int n=0, a=0;
int max=0, min = a; 
printf("Detecting...
А теперь это условие всегда будет возвращать false, ведь у вас стоит проверка if( a ), то есть, если a > 0.
0
5 / 5 / 1
Регистрация: 03.10.2014
Сообщений: 76
06.01.2016, 18:51  [ТС] 14
"А теперь это условие всегда будет возвращать false..."

Не согласен. Только что запускал эту программу. Смотрите результат #12 пост.
0
Любитель чаепитий
3742 / 1798 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
06.01.2016, 18:54 15
Цитата Сообщение от Salah_Addin Посмотреть сообщение
C++
1
if ( a < min)
А min-то = 0, а когда введёшь 0 или меньше, то цикл кончится.
0
5 / 5 / 1
Регистрация: 03.10.2014
Сообщений: 76
06.01.2016, 18:54  [ТС] 16
А зачем тему переименовали? Смысл. Ещё есть третья задача. Опять будете утруждать себя, когда мы к ней дойдем?
0
GbaLog-
06.01.2016, 18:55
  #17

Не по теме:

Salah_Addin, Я не модератор, не я переименовал.

0
5 / 5 / 1
Регистрация: 03.10.2014
Сообщений: 76
06.01.2016, 19:02  [ТС] 18
Ваша идея у меня барахлит. Я сначала сделал эту задачу без вложенного условия (искал только максимальное) в do{}while, и обнаружил, что программа считает последний ноль (для выхода из цикла) как число, которое тоже принимает участие в последующих действиях ( поиск максимального). Если делать с условием, то число для выхода не считается. Пример без условия в цикле:
Detecting maximum number from series of wholepositive numbers. The length of the
series number is not limit.
-> 5
-> 1
-> 6
-> 8
-> 0
Numbers were entered: 5.(!!!)

С условием:
Detecting maximum number from series of wholepositive numbers. The length of the
series number is not limit.
-> 5
-> 1
-> 6
-> 8
-> 0
Numbers were entered: 4.(!!!)
То есть max (а, значит, теперь и min) ищется среди чисел, введенных до 0.
Таким образом, минимум в числовой последовательности никто не искал. А если min = 1, он выводит число, заданное при инициализации (1, или ранее - 0).
0
Любитель чаепитий
3742 / 1798 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
06.01.2016, 19:09 19
Попробуйте сделать min = 10 и введите те же цифры, что и сейчас, вы увидите, что всё работает.

Добавлено через 2 минуты
А вообще, если бы я хотел сделать ту же задачу, что и вы, то я бы сделал так.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
//#include <cmath>
 
using namespace std;
 
int main() {
    int a, n = 0, max = 0, min = 0;
    while( cin >> a || a != 0 ) {
        if( a > max ) max = a;
        if( a < min ) min = a;
        n++;
    }
    cout << ...
    cin.get();
    return 0;
}
0
5 / 5 / 1
Регистрация: 03.10.2014
Сообщений: 76
06.01.2016, 19:11  [ТС] 20
Запустил при min = 10 - работает. Как объясните это при min=1 или =0 ?
..... is not limit.
-> 5
-> 3
-> 20
-> 0
Numbers were entered: 3.
Maximum number is 20
Minimum number is 1
0
06.01.2016, 19:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.01.2016, 19:11
Помогаю со студенческими работами здесь

В последовательности введенных с клавиатуры чисел найти минимальное и максимальное значения
1.Написать программу, которая в последовательности введенных с клавиатуры чисел находит минимальное...

дан массив чисел, найти значение функции y=x^3+5 для каждого числа; минимальное и максимальное значение; их сумму.
Здравствуйте, помогите пожалуйста написать программу. Задание: дан массив чисел, найти значение...

Сравнить n-чисел и найти максимальное и минимальное значение, не прибегая к if
Надо сравнить n-чисел и найти максимальное и минимальное значение, не прибегая к ужасным...

Найти максимальное и минимальное значение в массиве вещественных чисел
работал через StringGrid кое-что набросал, но код как-то работать не собирается. помогите плз


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru