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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Ybr
1 / 1 / 0
Регистрация: 05.11.2009
Сообщений: 17
#1

Образует ли набор чисел возрастающую последовательность - C++

05.11.2009, 10:21. Просмотров 1174. Ответов 3
Метки нет (Все метки)

Доброго времени суток!
Язык: С++
Задача: Дано целое число N и набор из N вещественных чисел. Проверить, образует ли данный набор возрастающую последовательность. Если образует, вывести True, если нет - False.
Кстати: нельзя пользоваться массивами
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
#include "stdafx.h"
#include "stdio.h"
#include <iostream.h>;
#include "windows.h";
#include "conio.h";
 
void main()
{
    int N, i;//i - счетчик
    float x, buf;//x - вводимые числа
    bool flag, final_flag;//flag - показывает, что
           //(текущее значение <= предыдущему),
           //final_flag - показывает, что хотя 1 раз flag был равен false
    char a[255], b[255];//просто вспомогательные строки
 
    CharToOem("Введите число N = ",a);
    cout << a;
    cin >> N;
    cout << "\n";
 
    final_flag=true;
 
           //Это вынес отдельно, чтобы потом у buf было нормальное
           //значение с самого начала цикла for (конкретно, строка 31)
    CharToOem("Введите вещественное число № 1",a);
    cout << a << "\n";
    cin >> x;
 
    for (i=2;i!=N+1;i++)
    {
        buf = x;
 
        CharToOem("Введите вещественное число № ",a);
        cout << a << i << "\n";
        cin >> x;
        
        if (x >= buf) flag=true;
        else flag=false;
 
        final_flag = final_flag*flag;//если flag=0 хотя бы 1 раз в
                      //предыдущем if (строки 37, 38), то final_flag всегда будет 0.
 
    }
 
    cout << "\n";
    if (final_flag=true) cout << "True";
    else cout << "False";
 
    getch();
}
Прога выводит только True. К примеру: N=3, числа: 1, 2, 3; N=3, числа 1, 0, 2.
Самое смешное: проверял второй набор (1, 0, 2) дебаггером (F10), и по его результатам переменная final_flag равна 0 (в самом конце, где условие на вывод True/False). То есть по-любому должен выводиться False, однако не выводится.

Поскажите, пожалуйста, в чем ошибка?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2009, 10:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Образует ли набор чисел возрастающую последовательность (C++):

Проверить, образует ли данный набор чисел возрастающую последовательность - C++
Дано целое число N и набор из N вещественных чисел. Проверить, образует ли данный набор возрастающую последовательность. Если образует,...

Проверить, образует ли заданный набор возрастающую последовательность - C++
Series21°. Дано целое число N (&gt; 1) и набор из N вещественных чисел. Прове-рить, образует ли данный набор возрастающую последовательность....

Если данный набор из N вещественных чисел образует убывающую последовательность, то вывести 0 - C++
Дано целое число N (&gt; 1) и набор из N вещественных чисел. Если данный набор образует убывающую последовательность, то вывести 0; в...

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

Дано 20 действительных чисел. Определить образуют ли они возрастающую последовательность - C++
Не знаю решения в с ++ в консоли

Dev-C++ Дано n вещественных чисел. Определить, образуют ли они возрастающую последовательность - C++
Я только пытаюсь осваивать язык С++, не могу понять в чем ошибка...помогите, пожалуйста!)) #include &lt;cstdlib&gt; #include &lt;iostream&gt; ...

3
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
05.11.2009, 11:20 #2
внимание строка 46

C++
1
2
 if (final_flag=true) cout << "True";  // == - это сравнение, а = - это присваивание
        else cout << "False";
в строке 46 замени = на == в общем
1
Ybr
1 / 1 / 0
Регистрация: 05.11.2009
Сообщений: 17
05.11.2009, 12:45  [ТС] #3
Спасибо, TanT! Тогда вдогонку вопрос про исключения

Задача очень простая – на любую исключительную ситуацию должно выдаваться одно и тоже сообщение.
Прочитал статью на codenet (+интернеты), но не все осталось ясным. К примеру, есть очень простой код (Visual C++ 2008):

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
#include "stdafx.h"
#include "stdio.h"
#include <iostream>
#include "windows.h";
#include "conio.h";
#include "math.h";
 
using namespace std;
 
void main()
{
    float s,n;
 
    cout << "vvedite chislo" << endl;
    cin >> n;
 
    try
    {
        s=acos(n);
    }
    catch (...)
    {
        cout << "Proizoshla oshibka!" << endl;
    }
 
    getch();
}
При запуске сообщение "Proizoshla oshibka!" не выдается.
Однако если сделать n типа int и написать s=1/n, то сообщение замечательно выводится.

Всего 2 вопроса:
1. Где ошибка в этом коде?
2. Допустим (гипотетически), я всю свою программу запихну в блок try. Соответственно, если у меня где-то будут возникать исключения, будет выдаваться сообщение, записанное в catch, так? Из этого:
- Пусть найдется исключение в строке 10. Программа выдаст сообщение. А дальше она продолжит выполняться?
- Пусть я хочу вывести на экран мою переменную s. Если ошибок нет, то все гладко. А если ошибка будет, то, получается, сначала выведется значение s (что-то типа 1.#INF0), а уже потом сообщение об ошибке. Как такой ситуации можно избежать? (т.е чтобы выводилось только сообщение об ошибке)
0
Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
05.11.2009, 13:38 #4
- Пусть найдется исключение в строке 10. Программа выдаст сообщение. А дальше она продолжит выполняться?
Нет
Как такой ситуации можно избежать? (т.е чтобы выводилось только сообщение об ошибке)
попробуйте через break;
1
05.11.2009, 13:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.11.2009, 13:38
Привет! Вот еще темы с ответами:

Найти количество чисел, цифры которых образуют строго возрастающую последовательность - C++
Я только начинаю программировать на C++ и поэтому мне нужна ваша помощь! Помогите решить следующую задачу: Программа вводит n...

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

Дан массив действительных чисел. Удалить все фрагменты массива, которые образуют возрастающую последовательность. - C++
Написать библиотеку функций (шаблонов функций) для работы с динамическим одномерным массивом, реализующие следующие задачи: Создание...

Определить, представляет ли собой заданный набор вещественных чисел убывающую последовательность - C++
Дано целое число N и набор из N вещественных чисел. Если данный набор образует убывающую последовательность, то вывести 0; в противном...


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

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

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