Перейти к содержимому

Как задать диапазон в с

  • автор:

Как задать диапазон в с

Нужно вывести диапазон значений например пишешь от 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
Форумчанин Регистрация: 15.01.2010 Сообщений: 948

В C / C++ освобождать взятую динамически память после того, как она стала ненужной, программист должен сам. Раз написали malloc() - надо написать и free(). Написали new() - надо написать delete().

СтарожилДжуниор Регистрация: 19.07.2009 Сообщений: 3,336

2AquaticSoul
а ты сделай как. возьми любую книжечку по языку Си, открываешь в конце оглавление, ищешь буковку 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 там фактически стоят вызовы (тяжеловесных) функций

10 дек 2017 в 11:01

Правку откатил, т.к. она вредная, не понятно что автор имел ввиду и если у него реально шарп, то может иметь значение там & или && , @Rasul

10 дек 2017 в 11:03

Фокус в том, что я не в курсе :) Дали файл на посмотреть, а там предположил. Значит, это таки Паскаль. И если верно понял, то в Паскале другого варианта диапазона нет, так?

10 дек 2017 в 11:39

1 ответ 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("Ошибка, недопустимое значение. Попробуйте ещё раз.");
>

Как можно заметить, тут проверяется ещё и формат, а то пользователь может вместо числа и слово написать или ещё какую-нибудь хрень ввести.
Но это если говорить о программах, которые будут реально использоваться. При выполнении учебных задач такие подробные проверки, наверное, не требуются.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *