Как задать диапазон в с
Нужно вывести диапазон значений например пишешь от 25 до 28
выводит 25 26 27 28 29; и реализовать в виде функции, я вот но у меня ошибка.. и как потом запихнуть это в функцию?
| AquaticSoul |
| Посмотреть профиль |
| Найти ещё сообщения от AquaticSoul |
Форумчанин
Регистрация: 13.12.2009
Сообщений: 272
void diap(int fst, int sec) < for (int i=fst; iint main()
И нужно вводить кучу индексов ненужных, каких то длинных имен и массивов?
Если я помог вам — порадуйте меня, нажмите на весы слева
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
Сообщение от RoS
for (int i=fst; isec;i++)
for (int i=fst; isec;i++)
Если это только не «range» в Питоновском понимании этого термина. Тогда — действительно, «строго меньше»
Форумчанин
Регистрация: 13.12.2009
Сообщений: 272
Ну в принципе да, хотя у автора вообще
| Нужно вывести диапазон значений например пишешь от 25 до 28 выводит 25 26 27 28 29; и реализовать в виде функции, я вот но у меня ошибка.. и как потом запихнуть это в функцию? |
Если я помог вам — порадуйте меня, нажмите на весы слева
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
Сообщение от RoS
хотя у автора вообще
| . пишешь от 25 до 28 выводит 25 26 27 28 29; |
Думаю, автор в спешке очепатался 29 — лишнее.
Пользователь
Регистрация: 15.12.2009
Сообщений: 42
Да я действительно опечатался
Мне нужно не просто его вывести а записать в массив, мне этот массив ещё пригодится.
| AquaticSoul |
| Посмотреть профиль |
| Найти ещё сообщения от AquaticSoul |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
#include #include int FillArray( int kFrom, int kTo, int* a ) < int n = 0, k; for ( k = kFrom; k int main() < int i, kFrom = 25, kTo = 28, n; int* a; /* * Здесь можете сделать ввод kFrom и kTo вместо присваивания * и хотя бы простейшую проверку, a la kFrom Пользователь Регистрация: 15.12.2009 Сообщений: 42 Спасибо, а для чего нужна строка free( a ); ?
| AquaticSoul |
| Посмотреть профиль |
| Найти ещё сообщения от AquaticSoul |
В C / C++ освобождать взятую динамически память после того, как она стала ненужной, программист должен сам. Раз написали malloc() - надо написать и free(). Написали new() - надо написать delete().
СтарожилДжуниор Регистрация: 19.07.2009 Сообщений: 3,3362AquaticSoul
а ты сделай как. возьми любую книжечку по языку Си, открываешь в конце оглавление, ищешь буковку F, далее ищешь слово free, после него увидишь цифорку. ну так вот. открываешь страницу с номером этой цифорки и читаешь, читаешь, читаешь. если книжек нет, из сети качать совесть не позволяет, то можно сделать вот так:
http://yandex.ru/yandsearch?text=%D1. 8F+free&lr=213
и что мы видим на первой странице первой ссылкой, первым словом?
на этом урок закончен. ты уж потренируйся сам так делать, без посторонней помощи. договорились?
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr.
Q: Whats the object-oriented way to become wealthy?
A: Inheritance
Как задать диапазон в с
Операторы > Матричные операторы > Переменные-диапазоны
Переменные-диапазоны
Переменные-диапазоны — это последовательности значений, определенные с использованием оператора диапазона:



Переменная-диапазон i является последовательностью, начинающейся с 0 и оканчивающейся 2 с шагом между соседними значениями последовательности, равным 1. Размер шага можно изменить, задав второе значение последовательности:
Как задать диапазон значений?
Не уверен, что она даже будет работать, да и на мой взгляд юзверя выглядит крайне криво. Не будет ли коду плохо от такого количества 'and' и есть ли варианты задать диапазоны другим способом? Просьба максимально пояснять ответ :)
Отслеживать 28.7k 4 4 золотых знака 40 40 серебряных знаков 81 81 бронзовый знак задан 10 дек 2017 в 9:04 Jack Enfield Jack Enfield 13 1 1 серебряный знак 5 5 бронзовых знаков @Rasul: Вы изменили смысл вопроса, кстати. 10 дек 2017 в 9:16да нормально bool cond = (a >1 && a = < 5) && (b >2 && b < 10); if (cond) < >. остальные решения будут все равно не лучше, если только таких проверок в if не ожидается большое количество
10 дек 2017 в 9:17Вообще если у вас реально шарп, а не паскаль, то все скобки можно выбросить, так как толку от них никакого, останется просто: if (a>1 && a=<5 && b>2 && b <10) < >В паскале скобки нужны, т.к. там операции and / or / > / < /и т.д. имеют одинаковый приоритет и код вообще не скомпилируется. Ну и, конечно, есть нюанс если вместо a и b там фактически стоят вызовы (тяжеловесных) функций5>
10 дек 2017 в 11:01Правку откатил, т.к. она вредная, не понятно что автор имел ввиду и если у него реально шарп, то может иметь значение там & или && , @Rasul
10 дек 2017 в 11:03Фокус в том, что я не в курсе :) Дали файл на посмотреть, а там предположил. Значит, это таки Паскаль. И если верно понял, то в Паскале другого варианта диапазона нет, так?
10 дек 2017 в 11:391 ответ 1
Сортировка: Сброс на вариант по умолчаниюЕсли это в реальности не C#, а Паскаль, то отрезки можно проверять проще:
if (a in [2..5]) and (b in [3..9]) then .
Это, разумеется, для случая, когда a и b — целочисленные переменные. Работает для случая, когда размер диапазона не более 255 элементов.
В некоторых диалектах Паскаля можно создавать функции расширения, там проверку диапазона можно объявить как такую вот функцию.
Диапазон чисел в C#.
В моём задании необходимо, чтобы пользователь назвал любое число в диапазоне от 2 до 12. Можно ли задать этот диапазон в программе или надо просто писать Console.WriteLine("Введите любое число от 2 до 12")?
Голосование за лучший ответ
Ну если ты думаешь, что люди тупые и им этого мало, то напиши вот так.
Выберите число: 2 3 4 5 6 7 8 9 10 11 12. Как думаешь?
Шучу, конечно же можно написать от и до.
Но проверить введённое число надо.
СабинаУченик (198) 6 лет назад
Я не думаю, что люди тупые. Я хотела создать цикл, где числа от 2 до 12, и чтобы пользователь среди них выбирал. Но не получается реализовать, выходит "Введите выбранное число". Понимаю, в чём ошибка, но как записать правильно, не знаю. И как проверить? С помощью if?
Максим Искусственный Интеллект (193194) Ну это несколько убого так писать, но если тебе очень хочется, то я помогу.
Корректность вводимых данных всегда нужно проверять, на внимательность и сообразительность пользователя полагаться не стоит. Я бы сделал как-нибудь так:
int x = 0;
Console.WriteLine("Введите число от 2 до 12");
while (!int.TryParse(Console.ReadLine(), out x) || x < 2 || x >12)
Console.WriteLine("Ошибка, недопустимое значение. Попробуйте ещё раз.");
>
Как можно заметить, тут проверяется ещё и формат, а то пользователь может вместо числа и слово написать или ещё какую-нибудь хрень ввести.
Но это если говорить о программах, которые будут реально использоваться. При выполнении учебных задач такие подробные проверки, наверное, не требуются.