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

Некорректно работает функция проверки на численность - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Разветвляющийся алгоритм. Определить размеры очередей после проезда маршрутного такси заданной вместимости http://www.cyberforum.ru/cpp-beginners/thread1349292.html
Известны размеры очередей на трех соседних остановках. Определить размеры очередей после проезда маршрутного такси заданной вместимости.
C++ Структуры, определить средний бал и количество отличников Условие задания: Поля структуры: Фамилия Группа Физика Информатика История Задача такова: http://www.cyberforum.ru/cpp-beginners/thread1349258.html
Определить, есть ли в заданной строке цифра C++
Условие задания: Определить, есть ли в заданной строке цифра. Вывести сообщение об этом. Помогите переделать код, у меня есть, но там ошибки какие-то и мне нужно с объяснением как каждая строчка работает, ну комментарий. Это задание на экзамен. Объяснить как код работает. Код программы: #include <stdio.h> #include <string.h> int main() {
Замена букв на пробелы C++
Дан массив симолов,заменить лат. прописную букву от a до z если есть на пробел.
C++ Преобразование символов в строке http://www.cyberforum.ru/cpp-beginners/thread1349246.html
Нужно изменить буквы в строке по следующему принципу: "a" на "b", "A" на "B", "z" на "a" и т.д. Но толкнулся с такой проблемой: программа строку меняет, но сами изменения не сохраняются. То есть когда пытаюсь вывести строку, то печатается не преобразованная, а начальная строка. Где может быть косяк? P.S Строку нужно выводить не в той же функции, в которой она преобразовывается. #include...
C++ Структуры и строчные массивы Условие задания: Введите массив символов из 15 элементов. Подсчитать количество гласных русских букв. Помогите переделать код, у меня есть, но там ошибки какие-то и мне нужно с объяснением как каждая строчка работает, ну комментарий. Это задание на экзамен. Объяснить как код работает. Код программы: #include <iostream> #include <string.h> using namespace std; int main() { подробнее

Показать сообщение отдельно
Иван_Богданов
3 / 3 / 0
Регистрация: 18.12.2014
Сообщений: 64
19.02.2015, 18:11  [ТС]     Некорректно работает функция проверки на численность
Просто парсить строку здесь непрагматично: можно поставить своего рода костыль: запилить булевскую функцию, которая проверяет значения переменной и которая что-то делает, если значения не совпадают. (Почему-то прога странно шарится в потоке (или я неправильно заставляю ее шариться): условие не совпало, но все равно продолжает.) Например:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
bool check(long long i, long long min, long long max) {
//моя ф-я принимает три аргумента: i, min, max
    if(!is_number())        {return false;}
    if(i>INT_MAX)           {return false;}
    if(i<=0)                {return false;}
    if(i>1000000)           {return false;}
    if(abs(min)>INT_MAX)    {return false;}
    if(abs(min)>INT_MAX)    {return false;}
    if(max<=min)            {return false;}
//если подходят мои условия if-ов, возвращаем ложь
return true;
//если все в порядке - правду
}
(...В таком виде все нормально работает.) Далее:
C++
1
2
3
4
5
6
7
8
int main()
{ /*...бла-бла-бла...*/
cout << "Количество значений = "; cin >> i;
cout << "Мин. значение = "; cin >> min;
cout << "Макс. значение = "; cin >> max;
//эти i, min, max - другие переменные
if(!check(i,min,max)) {fatal_error();}
//если наша ф-я выдала ложь, запускаем ф-ю fatal_error()
...которая, в свою очередь...
C++
1
2
3
4
void fatal_error() {
    cout << "\n\nYou have broken the program.\n";
//выводит сообщение об ошибке, и при нажатии любой клавиши запускает основную ф-ю main()
    if(_getch()) main();}
Мне тоже это кажется странным, но это работает без проблем. Просто эта ф-я должна заново начинать выполнение программы, но операторы безусловного перехода нельзя юзать в разных ф-ях. Есть ли еще способы заставить прогу перейти из одной ф-и в другую?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru