Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Ai.for.st
0 / 0 / 0
Регистрация: 12.03.2010
Сообщений: 5
#1

Необходимо найти квадрат числа в данном числе - Есть ошибка, но не могу ее найти... - C++

12.03.2010, 05:43. Просмотров 872. Ответов 12
Метки нет (Все метки)

Дано некоторое число (a). Необходимо найти наибольшее число, квадрат которого содержится в данном нам числе.

Написанный мной вариант данной программы не работает. При попытке компиляции выдается сообщение об ошибке. Но я не могу ее отыскать
Помогите, пожалуйста, с её отысканием (и желательно, исправлением)!

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
25
26
#include<iostream>
#include<cmath>
using namespace std;
 
int kvadr(int n1) 
{
    double s=1;
    int i1=2;
    while(i1<n1)
    {
        if(i1%n1==0)
        {
            s=s+i1;
        }
        i++;
    }
    return s;
}
 
void main(){
    int a,b;
    cout<<"Vvedite a"<<endl;
    cin>>a;
    b=kvadr(a);
    cout<<"Naibolshee 4islo, kvadrat kotorogo est' v a ="<<b<<endl;
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2010, 05:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Необходимо найти квадрат числа в данном числе - Есть ошибка, но не могу ее найти... (C++):

Для каждого числа найти корень квадратный, если дробная часть меньше 5, в противном случае найти квадрат данного числа - C++
Даны три положительные действительные числа. Для каждого числа найти корень квадратный, если дробная часть меньше 5, в противном случае...

Есть ли ошибка в коде. Не могу найти. - C++
#include&lt;stdio.h&gt; #include&lt;string.h&gt; #include&lt;conio.h&gt; int summa(char *st) { int i; i=0; while ( st ) { if ((st &gt;=...

не могу никак найти сравнение цифр в числе - C++
народ помогите с индексами в массиве, надо сделать задачку в массиве из 4 индексов например 13 2 45 19 нужно из каждого индекса найти...

Найти количество цифр в числе, квадрат которых меньше квадрата последней цифры числа - Turbo Pascal
Сколько цифр в числе, квадрат которых меньше квадрата последней цифры числа. Добавлено через 6 минут Написать с простым циклом while...

Найти сумму цифр целого числа, если в числе есть цифры больше 5 - Lazarus
Помогите пожалуйста, Нужно найти сумму цифр целого числа, если в числе есть цифры больше 5

Подскажите где ошибка. В данном диапазоне найти все чётные числа - C#
Подскажите где ошибка!В данном диапазоне найти все чётные числа.Не считает чётные числа Console.Write(&quot;Введите длину...

12
Sergey_O
5 / 5 / 1
Регистрация: 09.12.2009
Сообщений: 65
12.03.2010, 06:42 #2
Строка 15. Откуда вылезает i?
0
Ai.for.st
0 / 0 / 0
Регистрация: 12.03.2010
Сообщений: 5
12.03.2010, 08:37  [ТС] #3
Цитата Сообщение от Sergey_O Посмотреть сообщение
Строка 15. Откуда вылезает 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
25
26
27
#include<iostream>
#include<conio.h>
#include<cmath>
using namespace std;
 
int kvadr(int n1) 
{
    int s=0;
    int i1=1;
    while(i1<n1)
    {
        if(n1%i1==0)
        {
            s=s+i1;
        }
        i1++;
    }
    return s;
}
 
void main(){
    int a,b;
    cout<<"Vvedite a"<<endl;
    cin>>a;
    b=kvadr(a);
    cout<<"Naibolshee 4islo, kvadrat kotorogo est' v a ="<<b<<endl;
        }
При компиляции теперь ошибок нет.
Но когда пытаюсь запустить exe-файл, у меня запрашивают число a - я его ввожу с клавиатуры; при нажатии клавиши Enter программа сразу же закрывается. Возможно ли, что это происходит из-за того, что задержка экрана имеет место только до нажатия любой клавиши (#include<conio.h>)? Или я чего-то пока не могу понять...

Добавлено через 34 минуты
Но когда пытаюсь запустить exe-файл, у меня запрашивают число a - я его ввожу с клавиатуры; при нажатии клавиши Enter программа сразу же закрывается. Возможно ли, что это происходит из-за того, что задержка экрана имеет место только до нажатия любой клавиши (#include<conio.h>)? Или я чего-то пока не могу понять...
Похоже, с этим всё-таки разобралась - добавила _getch() в конец. Буду благодарна, если кто-нибудь подскажет, как правильно организовать функцию
C++
1
int kvadr(int n1)
,
а-то, видимо, здесь у меня и имеет место быть главная ошибка.
0
Vorona
Peace 2 all shining faces
670 / 532 / 45
Регистрация: 05.03.2010
Сообщений: 1,283
12.03.2010, 09:13 #4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream>
#include<conio>
#include<сmath>
using namespace.std
 
int kvadr(int n){
    for(int i=0; pow(i, 2) < n; i++){}
    return pow(i-1, 2);
}
 
void main(){
    clrscr();
    int a;
 
    cout<<"Vvedite a"<<endl;
    cin>>a;
    cout<<"Naibolshee 4islo, kvadrat kotorogo est' v "<<a<<" = "<<kvadr(a);
    getch();
}
только не знаю, как <conio.h> или <conio>
1
Iworb
анимешник++
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 423
12.03.2010, 09:36 #5
Цитата Сообщение от Vorona Посмотреть сообщение
только не знаю, как <conio.h> или <conio>
если есть using namespace std; - тогда без
.h
но это вроде будет Си++, а не Си

если без using namespace std; - то это Си и библиотеки надо подключать conio.h
0
M128K145
Эксперт С++
8299 / 3519 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
12.03.2010, 10:03 #6
Цитата Сообщение от Iworb Посмотреть сообщение
но это вроде будет Си++, а не Си
если без using namespace std; - то это Си и библиотеки надо подключать conio.h
Это не коррелируемые явления. Все зависит от IDE

C++
1
2
3
4
5
6
#include <iosteam>
int main()
{
    std::cout<<"Hello, World!";
    return 0;
}
C++
1
2
3
4
5
6
#include <iosteam.h>
int main()
{
    cout<<"Hello, World!";
    return 0;
}
Обе программы написаны на чистом С++, только первый вариант под новые IDE, второй под старые
1
Day
1159 / 964 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
12.03.2010, 10:18 #7
Можно так
Код
#include <math.h>
kvadr(int n)
{
    int x = sqrt(n);
    return(x);
}
1
Vorona
12.03.2010, 10:39
  #8

Не по теме:

только return x*x;

0
Day
1159 / 964 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
12.03.2010, 13:01 #9
Цитата Сообщение от Vorona Посмотреть сообщение

Не по теме:

только return x*x;

Необходимо найти наибольшее число, квадрат КОТОРОГО содержится в данном нам числе.
Вот такое условие, вроде бы
0
Vorona
Peace 2 all shining faces
670 / 532 / 45
Регистрация: 05.03.2010
Сообщений: 1,283
12.03.2010, 13:21 #10
Да-да, невнимателен с утра)
0
Ai.for.st
0 / 0 / 0
Регистрация: 12.03.2010
Сообщений: 5
13.03.2010, 19:43  [ТС] #11
Цитата Сообщение от Day Посмотреть сообщение
Можно так
Код
#include <math.h>
kvadr(int n)
{
    int x = sqrt(n);
    return(x);
}
Можно сказать, что в изучении C++ я новичок, поэтому не вполне понимаю - будет ли обязательно sqrt(n) типа int? Если нет, то можем ли мы правомерно писать
C++
1
int x = sqrt(n);
?
0
Vorona
Peace 2 all shining faces
670 / 532 / 45
Регистрация: 05.03.2010
Сообщений: 1,283
13.03.2010, 19:51 #12
в данной ситуации использовать корень - очень удобно
переменная типа int - целое число и используя функцию нахождения корня, она сокращает все, что находится после запятой, предоставляя нам как-раз число, квадрат которого будет ближе всего к вводимому нами числу)
1
Day
1159 / 964 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
13.03.2010, 22:16 #13
Ai.for.st,
не вполне понимаю - будет ли обязательно sqrt(n) типа int? Если нет, то можем ли мы правомерно писать

Ты совершенно прав, sqrt типа double, но в Си (и ++ тоже) работает механизм приведений,
т.е. число double приводится к int отбрасыванием дробной части.
Можно было бы написать int x = (int) sqtr(...); но это излишне, т.к. Си это делает за нас
1
13.03.2010, 22:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.03.2010, 22:16
Привет! Вот еще темы с ответами:

Определить сколько цифр в числе, найти первую цифру числа,найти предпоследнюю цифра числа - C (СИ)
Дано натуральное число n (n&lt;10000). Определить сколько цифр в числе, найти первую цифру числа,найти предпоследнюю цифра числа. P.s...

Найти количество чётных и нечётных цифр в данном числе - Pascal ABC
Вводим целое число, найти количество чётных и не чётных чисел в нём, вывести их на экран. Надо написать программу которая...

Сколько четных цифр в данном числе. Верно ли, что в данном числе встречаются цифры А и В - Delphi
Нужно написать программы(консольное приложение) в делфи самым простым способом без процедуры,функции и без рандомайза 9 Дано...

как найти пропущенные значения в таблицек примеру есть числа 1,2,4,6. необходимо вывести что не хватат - SQL Server
Есть таблица Называется К в ней находится 1 столбец ID_DOC в нём хранятся числа. В нео постоянно добаляются новые значения в режиме...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.