Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/55: Рейтинг темы: голосов - 55, средняя оценка - 4.62
0 / 0 / 1
Регистрация: 20.04.2015
Сообщений: 88

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

22.04.2015, 15:45. Показов 10398. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть программа, она считает все делители числа и их сумму, но и считает также отрицательные числа. Помогите пожалуйста что бы она считала только положительные числа.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
    int n, i, sum;
    cout << "Vvedite chislo=";
    cin >> n;
    sum =n;
    cout << "Deliteli:"<<endl;
    for (i = 1; n / 2; i++){
        if (n%i== 0)
        {
            sum = sum + i;
            cout << i;
            cout << " ";
        }
    }
        cout << n;
        cout << "Sum - " << sum;
    system("pause");
    return 0;
}
Пробывал
C++
1
 if (n<0)
не получилось..
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.04.2015, 15:45
Ответы с готовыми решениями:

Проверка знака числа
Здравствуйте, подскажите пожалуйста как сделать если в массиве одно отрицательное число то ошибка?

Проверка, одного знака или разных
Всем привет! Такой вопрос: есть 1 функция и 2 точки. Надо проверить, одинаковые ли значения принимает эта функция в этих точках. ...

Проверка знака препинания при работе со строками
Во фрагменте с циклом while,когда проверяется последний символ строки на то,является ли он знаком препинания, он просто игнорирует...

10
Модератор
Эксперт С++
 Аватар для zss
13769 / 10962 / 6491
Регистрация: 18.12.2011
Сообщений: 29,236
22.04.2015, 15:54
C++
1
2
3
4
5
6
7
8
9
10
11
int main()
{
    int n, i, sum;
    cout << "Vvedite chislo=";
    cin >> n;
    if(n<0)
    {
       cout<<"Negative value\n";
       return 0;
     }
.....
0
0 / 0 / 1
Регистрация: 20.04.2015
Сообщений: 88
22.04.2015, 16:07  [ТС]
Мне нужно что бы отрицательные числа не считал и не выводил, только положительные.
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
22.04.2015, 16:40
Цитата Сообщение от Diwate Посмотреть сообщение
for (i = 1; n / 2; i++){
* * * * if (n%i== 0)
* * * * {
* * * * * * sum = sum + i;
* * * * * * cout << i;
* * * * * * cout << " ";
* * * * }
* * }
Ну и чего ты хочешь? Цикл-то бесконечный. Внутри цикла n не меняется, и цикл либо вообще не выполняется, либо выполняется до второго пришествия.
По ходу его выполнения i переполняет разрядную сетку и выводится совсем уж ахинея (в том числе и отрицательные числа)
0
0 / 0 / 1
Регистрация: 20.04.2015
Сообщений: 88
22.04.2015, 16:46  [ТС]
А написать код можете?
0
Модератор
Эксперт С++
 Аватар для zss
13769 / 10962 / 6491
Регистрация: 18.12.2011
Сообщений: 29,236
22.04.2015, 16:58
А почему не устраивает мой код (пост №2)?
Если число отрицательное, то сообщаем об этом и заканчиваем программу.
0
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 35
22.04.2015, 16:59
Лучший ответ Сообщение было отмечено Diwate как решение

Решение

Diwate, всего-то ограничение поставить для i
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
using namespace std;
 
int main()
{
    int n, i, sum;
    cout << "Vvedite chislo=";
    cin >> n;
    sum =n;
    cout << "Deliteli:"<<endl;
    for (i = 1; i <= n / 2; i++)
    {
        if (n%i== 0)
        {
            sum = sum + i;
            cout << i;
            cout << " ";
        }
    }
    cout << n;
    cout << "\nSum - " << sum;
    system("pause>>null");
    return 0;
}
0
0 / 0 / 1
Регистрация: 20.04.2015
Сообщений: 88
22.04.2015, 17:03  [ТС]
У меня не получилось так, тем более что я эту проверку в конце своей темы написал.

Добавлено через 1 минуту
Благодарю работает!
0
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 35
22.04.2015, 17:03
Diwate, что значит "не получилось"? Это не информативно для нас.
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
22.04.2015, 17:21
Цитата Сообщение от zss Посмотреть сообщение
А почему не устраивает мой код (пост №2)?
Если число отрицательное, то сообщаем об этом и заканчиваем программу.
Там дело вовсе не в этом. Даже при вводе положительного числа, крутится бесконечный цикл по i. И если немножко подождать, то это i становится отрицательным. Просто код настолько кривой, что лечить надо даже не его, а голову.

Добавлено через 2 минуты
А цикл я бы записал так
C++
1
for (i = 2, sum=n+1; i <= n / 2; i++)
1
0 / 0 / 1
Регистрация: 20.04.2015
Сообщений: 88
22.04.2015, 17:37  [ТС]
Там цикл не так был организован, поэтому и не работал.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.04.2015, 17:37
Помогаю со студенческими работами здесь

Определить цифры целого числа (тип числа - целое без знака)
Определить цифры целого числа( тип числа-целое без знака), вычислить сумму полученных цифр. Помогите ,пожалуйста.

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

Проверка в richTextBox вопросительного знака в конце
как осуществить проверку: необходимо проверить является ли строка вопросом? я осуществляю простейший AI для лабы и там при нажатии...

Проверка MONEY на 2 знака после запятой
Здравствуйте! Необходимо проверить параметр хранимой процедуры, чтобы он был указан именно в таком формате 9999.99 (именно 2 знака после...

Проверка знака пунктуации и проставление пробела за ним
здрасьте. Надо ввести переменную которая проверяла бы если есть знак пунктуации то ставить пробел если нет то идти дальше. #include...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
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 . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru