Числовая последовательность - C (СИ)
Формулировка задачи:
Добрый вечер! Суть такова, что необходимо подсчитать количество чисел, которые являются квадратами некоторого натурального числа (число не вводится с клавиатуры и не задано) и не превосходят числа А. Программа завершает работу когда последним членом является 0.
Вот мой код:
Где a - сама последовательность. В итоге программа должна из чисел (например) 1 2 3 4 5 6 7 8 9 выбрать два (4 и 9) т.к. они являются квадратами 2 и 3. В чем ошибка моего кода?
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main()
{
double a, A;
int count=0;
int N;
printf ("Vvedite A=");scanf("%lf",&A);
printf ("Vvedite a=");scanf("%lf",&a);
while(a!=0)
{
N=sqrt(a);
N>0;
if (a<A && a>=0)
count++;
printf ("Vvedite a=");scanf("%lf",&a);
}
printf ("Kolichestvo elementov ravno=%d\n", count);
getch();
return 0;
}Решение задачи: «Числовая последовательность»
textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main()
{
double a, A;
int count=0;
double N;
printf ("Vvedite A=");scanf("%lf",&A);
printf ("Vvedite a=");scanf("%lf",&a);
while(a!=0)
{
N=sqrt(a);
if (a<A && N==int(N)){
count++;
}
printf ("Vvedite a=");scanf("%lf",&a);
}
printf ("Kolichestvo elementov ravno=%d\n", count);
getch();
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами, математическими и целочисленными операциями.
- Объявление переменных:
a,A,countиN. - Ввод значений для переменных
Aиaс помощью функцииscanf(). - Бесконечный цикл, который прерывается только когда значение переменной
aстановится равным нулю. - Вычисление значения переменной
Nкак квадратного корня отa. - Проверка условия: если
aменьшеAиNявляется целым числом, то увеличивается счетчикcount. - Вывод количества найденных чисел, удовлетворяющих условию, в конце работы программы.
- Ожидание нажатия клавиши для завершения работы программы.
- Возвращение значения 0, что означает успешное завершение работы программы.