Форум программистов, компьютерный форум CyberForum.ru

Вычислить первый целый корень из последовательности - C++

Войти
Регистрация
Восстановить пароль
 
Vasya2904
0 / 0 / 0
Регистрация: 07.06.2011
Сообщений: 37
30.03.2013, 15:12     Вычислить первый целый корень из последовательности #1
Доброе время суток! Задали задачку - написать программу, которая из последовательности чисел выбирает первое число, корень которого - целый. Например, последовательность чисел от 30 до 80 первое число -36. Нужно сделать через цикл for. Мой вариант кода:
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 <cmath>
using namespace std;
int main()
{
    int a, b,i;
    double drob, cel, j;
    cout << "Enter:" ;
    cin >> a;
    cout << "Enter:" ;
    cin >> b;
    while (i>=a)
{
        j=sqrt(i);
    drob = modf(j , &cel);
    if (drob = 0)
    {
             cout << j;
             };    }
    cout << j;
    cin.get();
    cin.get();
    }
Выдаёт всегда 0, DEV-C++. Заранее спасибо за помощь.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2013, 15:12     Вычислить первый целый корень из последовательности
Посмотрите здесь:

Найти первый член последовательности C++
C++ Найти первый член последовательности
C++ Найти первый член последовательности
C++ Вычислить корень уравнения(C++)
Вычислить корень из числа. C++
вычислить корень C++
C++ Вычислить корень квадратный
Вычислить корень уравнения C++
Найти первый член последовательности меньший Е C++
Почему методом Гаусса считает правильно только первый корень? C++
C++ Перенести первый элемент последовательности в её конец
Подсчет произведения последовательности из n элементов и вычислить корень n-ой степени C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IrineK
Заблокирован
30.03.2013, 22:59     Вычислить первый целый корень из последовательности #2
Тоже вариант, но разумный:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <cmath>
using namespace std;
 
int main()
{   int a=30, b=80, i;
    double res;
    for(i=a; i<=b; i++)
    {   res = sqrt((double)i);
        if(res == (int)res)
            break;
    }
    cout<<"sqrt("<<i<<") = "<<res;
 
    cin.get();
    return 0;
}
Vasya2904
0 / 0 / 0
Регистрация: 07.06.2011
Сообщений: 37
31.03.2013, 18:42  [ТС]     Вычислить первый целый корень из последовательности #3
Спасибо! Только ещё бы понять значение этих строк:
{ res = sqrt((double)i);
if(res == (int)res)
break;
}
IrineK
Заблокирован
02.04.2013, 11:27     Вычислить первый целый корень из последовательности #4
Мой вариант кода:
Только ещё бы понять значение этих строк:
Где-то здесь нестыковка...
vadim09
6 / 6 / 1
Регистрация: 04.08.2012
Сообщений: 62
02.04.2013, 12:03     Вычислить первый целый корень из последовательности #5
Цитата Сообщение от Vasya2904 Посмотреть сообщение
Спасибо! Только ещё бы понять значение этих строк:
C++
1
2
3
4
{   res = sqrt((double)i);
        if(res == (int)res)
            break;
    }
C++
1
res = sqrt((double)i);
Берем корень от i. i явно приводим к типу double, так как переменная res типа double.
C++
1
2
if(res == (int)res)
 break;
Означает, если res, не имеет плавающей точки, то (double)res==(int)res , так как при явном приведении к типу int, отбросит плавающую точку(все что после точки).
При выполнении этого условия выполняется оператор break и программа выходит из цикла.
Vasya2904
0 / 0 / 0
Регистрация: 07.06.2011
Сообщений: 37
02.04.2013, 16:54  [ТС]     Вычислить первый целый корень из последовательности #6
Спасибо! Всё понял)
Yandex
Объявления
02.04.2013, 16:54     Вычислить первый целый корень из последовательности
Ответ Создать тему
Опции темы

Текущее время: 01:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru