Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.09.2015, 15:07   #1
vova_makr
Пользователь
 
Регистрация: 25.09.2015
Сообщений: 42
По умолчанию вывести на экран все числа, делящиеся на 3 в диапазоне

вывести на экран все числа, делящиеся на 3 в диапазоне чтобы if не задействовать. Результат правильный для диапазона 11 ... 20 . Но для диапазона 1.. 20 уже нет . Подскажите как сделать чтобы показывался правильный результат для всех диапозонов

Код:
void PrintThreeNumbers(int lowBound, int highBound)
{
	for (int number = lowBound + (lowBound % 3); number <= highBound; number += 3)

		printf("%d\n", number);
}

int main()
{
	PrintThreeNumbers(1, 20);
	return 0;
}
С if я сделал а от как без него правильно ..
Код:
int number;
if (lowBound % 3 == 0)
    number = lowBound;
else
    number = lowbound + (3 - lowBound % 3);
 
for (; number <= highBound; number += 3)

Последний раз редактировалось vova_makr; 28.09.2015 в 15:24.
vova_makr вне форума Ответить с цитированием
Старый 28.09.2015, 15:15   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну, как минимум операторные скобки неверно стоят!
Где конец процедуры PrintThreeNumbers ?
почему он после окончания main ?!
В такое виде это вообще не должно работать!!

да и условие неверное.

попробуйте так:
Код:
void PrintThreeNumbers(int lowBound, int highBound)
{
 for (int number = (lowBound-1) + (3-((lowBound-1) % 3)); number <= highBound; number = number + 3)
  printf("%d\n", number);
}
 
int main()
{
 PrintThreeNumbers(11, 20);
 return 0;
}

Последний раз редактировалось Serge_Bliznykov; 28.09.2015 в 15:25.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.09.2015, 15:25   #3
vova_makr
Пользователь
 
Регистрация: 25.09.2015
Сообщений: 42
По умолчанию

спасибо. работает

Последний раз редактировалось vova_makr; 28.09.2015 в 15:32.
vova_makr вне форума Ответить с цитированием
Старый 28.09.2015, 16:29   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Ну, раз if нельзя, тогда, наверно, можно вот так?
Изображения
Тип файла: png 2.png (23.7 Кб, 56 просмотров)
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 28.09.2015, 16:35   #5
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от vova_makr Посмотреть сообщение
вывести на экран все числа, делящиеся на 3 в диапазоне чтобы if не задействовать.
Первое, что пришло на ум. Умножаем все числа на 3. 1*3=3 2*3=6. и т.д. Вот только без проверки ифом не получится доказать, делятся они только на 3 или есть ещё делители.
Уже у 6-ки два делителя. 2 и 3.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задание: Сгенерировать и вывести на экран массив А 10x10 случайных реальных чисел в диапазоне от 1 до 9. Определить по А и вывести Don202 Помощь студентам 1 25.09.2013 11:26
Вывести на экран все простые числа, не превосходящие заданное число М - Паскаль bibek13 Помощь студентам 4 06.12.2011 08:17
вывести на экран все числа делящиеся на 13 от1 до 100 nasya73 Паскаль, Turbo Pascal, PascalABC.NET 5 07.11.2011 01:32
C++ Вывести на экран все натуральные числа из диапазона от A до B, в записи которых цифра 7 встречается maloy0103 Помощь студентам 1 27.12.2010 00:17