Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/651: Рейтинг темы: голосов - 651, средняя оценка - 4.97
 Аватар для newb_programmer
238 / 238 / 113
Регистрация: 03.09.2011
Сообщений: 558

Проверка кратности чисел.

03.09.2011, 21:29. Показов 124054. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Программа должна выводить все числа кратные 11-ти в заданном диапазоне:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void main()
{
int i=10,lim;
cout<<"Enter upper limit:\n";
cin>>lim;
while (i<=lim)
{
if ((i%11)==true)
cout<<"\n"<<i<<"\n";
i++;
}
getchar(),getchar();
}
результат: 12 23 34 45, т.е. каждое число на 1 больше чем нужно. Помогите разобраться почему так и как исправить.
Спс за внимание!
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.09.2011, 21:29
Ответы с готовыми решениями:

Проверка кратности числа четырем
1.Данные целое число N. Если оно кратно 4 и не заканчивается 0, то напечатать &quot;Да&quot;, в противном случае напечатать &quot;Нет&quot;.

Проверка числа кратности двум.
День добрый, проверьте пожалуйста. Задание: Дана последовательность целых чисел, за которой следует 0. Найти количество элементов этой...

Для каждого из некоторого количества натуральных чисел найти простой делитель наибольшой кратности
для каждого из некоторого количества натуральных чисел найти простой делитель наибольшой кратности иными словами, вводим число 12, он...

11
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
03.09.2011, 21:32
Может, потому, что
C++
1
i % 11 == true
эквивалентно
C++
1
i % 11 == 1
?
А если число кратно 11, то его остаток от деления должен быть равен нулю.
1
Заблокирован
03.09.2011, 21:32
Цитата Сообщение от newb_programmer Посмотреть сообщение
Программа должна выводить все числа кратные 11-ти в заданном диапазоне:
void main()
{
int i=10,lim;
cout<<"Enter upper limit:\n";
cin>>lim;
while (i<=lim)
{
if ((i%11)==true)
cout<<"\n"<<i<<"\n";
i++;
}
getchar(),getchar();
}

результат: 12 23 34 45, т.е. каждое число на 1 больше чем нужно. Помогите разобраться почему так и как исправить.
Спс за внимание!

Это выражение i%11)==true верно в том случае, когда остаток от деления равен 1. То есть в этом условии логическая константа true преобразуется к целому типу и принимает значение, равное 1. Поэтому условие будет истинным, когда левый операнд также дает значение 1, то есть когда остаток от деленеия будет равен 1.

Вы могли бы переписать свое выражение следующим образом

if ( i%11 == 0 )
1
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
03.09.2011, 21:34
Да потому, что число, кратное 11, при num % 11 выдает 0

Добавлено через 36 секунд

Не по теме:

Шустрые....

1
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
03.09.2011, 21:39
Цитата Сообщение от Сыроежка Посмотреть сообщение
Это выражение i%11)==true верно в том случае, когда остаток от деления равен 1
вернее когда остаток от целочисленного деления на 11 больше нуля.
1
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
03.09.2011, 21:48
Цитата Сообщение от easybudda Посмотреть сообщение
вернее когда остаток от целочисленного деления на 11 больше нуля.
Поясните.
2 тоже больше нуля. Однако он не выводит 13, 24 и т.д.
0
Заблокирован
03.09.2011, 21:52
Цитата Сообщение от easybudda Посмотреть сообщение
вернее когда остаток от целочисленного деления на 11 больше нуля.
Вот только не нужно поправлять меня! Это выражение будет истинным именно только тогда, когда остаток от деления равен 1.

Я вам повторю свои объяснения, которые я уже представил. Значение типа bool преобразуется к типу int , то есть булева константа true преобразуется в целочисленное значение 1. Это преобразование происходит потому, что левый операнд имеет тип int. Поэтому равенстов может быть только тогда, когда левый операнд также имеет значение равное 1. То есть 1 может быть равна только самой себе, а не любому значению больше 0.

Добавлено через 35 секунд
Цитата Сообщение от soon Посмотреть сообщение
Поясните.
2 тоже больше нуля. Однако он не выводит 13, 24 и т.д.
Я уже все два раза пояснил!
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
03.09.2011, 21:53
Сыроежка, цитаты отслеживайте. Я не Вам запостил #6
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
03.09.2011, 22:00
Цитата Сообщение от soon Посмотреть сообщение
Поясните.
C++
1
2
3
4
5
6
7
#include <iostream>
 
int main(){
    for ( int i = 11; i < 23; ++i )
        std::cout << i << '\t' << ( i % 11 ) << '\t' << std::boolalpha << bool( i % 11 ) << std::endl;
    return 0;
}
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
$ ./1122
11  0   false
12  1   true
13  2   true
14  3   true
15  4   true
16  5   true
17  6   true
18  7   true
19  8   true
20  9   true
21  10  true
22  0   false

Не по теме:

Сыроежка, настоятельно рекомендую обратиться к психиатору по поводу мании величия.

0
Эксперт С++
 Аватар для grizlik78
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
03.09.2011, 22:04
да, но
C++
1
bool( i % 11 )
не то же самое, что
C++
1
(( i % 11 ) == true)
2
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
03.09.2011, 22:12
2easybudda
В данном случае bool приводится к int, а не наоборот, разве нет?
В остальном полностью согласен
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
03.09.2011, 22:15
Цитата Сообщение от grizlik78 Посмотреть сообщение
не то же самое
ё... и в правду не то же самое... Вот в С вообще bool нету, там всё проще...
Цитата Сообщение от newb_programmer Посмотреть сообщение
Программа должна выводить все числа кратные 11-ти в заданном диапазоне:
ну тогда так как-нибудь:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
 
int main(){
    int top;
    std::cout << "Top: ";
    std::cin >> top;
    for ( int i = 10; i < top; ++i )
        if ( ! ( i % 11 ) )
            std::cout << i << std::endl;
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.09.2011, 22:15
Помогаю со студенческими работами здесь

Проверка кратности 3 и 7 чисел из выборки
Составьте программу по проверке кратности 3 и 7 чисел из следующей выборки 21, 42, 63, ... (каждое последующее число в выборке получается...

Проверка кратности чисел числам 3, 5, и 15 с помощью двух проверок
Ребята, подскажите как сделать программу, на проверку кратности чисел на 3, на 5, и на 15 с помощью 2 -ух проверок деления. Я смог сделать...

Проверка кратности
Ребят, такая задача. У меня есть массив из 20 элементов. нужно найти сумма элементов кратных 5. Во всем разобралась, кроме того, как...

Проверка кратности числа
Помогите пожалуйста проверить кратно ли число 400; Или кратно 4 и не кратно 100. Заранее благодарен.

Проверка кратности, без повторения
Определить все числа, кратные 2 в диапазоне значений от 1 до 10. Конструкцию с циклами не использовать


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru