http://pastebin.com/aJJWwzhy
Найти натуральные числа из промежутка от К до L, у которых кол-во делителей превышает заданное М.
Другие языки программирования и технологии
Что не так с программой? Вначале работает нормально, но результат бесконечный, С++
Задача про Буратино: Буратино дали 5 яблок. 2 яблока Буратино съел сам, 1 отдал Мальвине. Сколько яблок у Буратино? Думаешь, 2? Нет. Правильный ответ - на 2 больше, чем было у него до начала задачи.
Это я к чему? К тому, что ПЕРЕМЕННЫЕ НАДО ОБНУЛЯТЬ. Особенно в C/C++. Особенно аккумуляторы. А если один сумматор используется несколько раз - то перед каждым использованием. Это все - про переменную d.
И про бесконечный результат - не ври, значение "бесконечность" (+INF) может возникать только у действительных переменных, но никак не у целых.
Да, и вывод числа вынеси из внутреннего цикла, в нем только d должно накапливаться.
Это я к чему? К тому, что ПЕРЕМЕННЫЕ НАДО ОБНУЛЯТЬ. Особенно в C/C++. Особенно аккумуляторы. А если один сумматор используется несколько раз - то перед каждым использованием. Это все - про переменную d.
И про бесконечный результат - не ври, значение "бесконечность" (+INF) может возникать только у действительных переменных, но никак не у целых.
Да, и вывод числа вынеси из внутреннего цикла, в нем только d должно накапливаться.
#include <iostream>
#include <string>
using namespace std;
int main() {
wcout.imbue(locale("rus_rus.866"));
unsigned k;
wcout << L"Введите K: "; cin >> k;
unsigned l;
bool x;
do {
x = true;
wcout << L"Введите L: "; cin >> l;
if (l > k) x = false;
else wcout << L"Вы ошиблись, повторите ввод\n\a";
} while (x);
unsigned m;
wcout << L"Введите заданное M: "; cin >> m;
unsigned n, count;
for (n = k; n <= l; n++) {
count = 0;
for (unsigned x = 1; x <= n; x++) if (!(n % x)) ++count;
if (count > m) cout << n << ' ';
}
wcout << L"\nКонец! \n";
cin.get(); cin.get();
return 0;
}
#include <string>
using namespace std;
int main() {
wcout.imbue(locale("rus_rus.866"));
unsigned k;
wcout << L"Введите K: "; cin >> k;
unsigned l;
bool x;
do {
x = true;
wcout << L"Введите L: "; cin >> l;
if (l > k) x = false;
else wcout << L"Вы ошиблись, повторите ввод\n\a";
} while (x);
unsigned m;
wcout << L"Введите заданное M: "; cin >> m;
unsigned n, count;
for (n = k; n <= l; n++) {
count = 0;
for (unsigned x = 1; x <= n; x++) if (!(n % x)) ++count;
if (count > m) cout << n << ' ';
}
wcout << L"\nКонец! \n";
cin.get(); cin.get();
return 0;
}
а я пристыжено промолвлю: а уж если не обнулять сумматоры, то глобальными объявлять - обнулит по-умолчанию....
Похожие вопросы
- Посоветуйте устанавливать ли мне windows 7 x32 или x64 (что лучше будет?). Будет ли она работать нормально с программами
- Вопрос по языку Си. Почему в тесте написано, что эта программа будет работать?
- как сделать так чтобы моя программа exe работала в онлайн режиме на моем сайте ?
- Почему программа не работает? помогите пожалуйста(Си)
- Кто знает,какие программы реально работают для чтения чужих сообщений в контакте???
- В этой программе можно переставить выражения, но результат работы почти не из-меняется. Почему?
- Почему эта программа Си выдает не такой результат?
- Написала программу, а он выдает неверный результат, c++
- С помощью какой программы можно работать с видео (обрезать и тд)
- Скажите программу которая работает с видио как фотошоп с фото!