Написать функцию IsSquare(K), проверяющую, является ли K квадратом некоторого целого числа - C (СИ)
Формулировка задачи:
Описать функцию IsSquare(K ) логического типа, возвращающую
TRUE, если целый параметр K (> 0) является квадратом некоторого це-лого числа, и FALSE в противном случае. С ее помощью найти количество
квадратов в наборе из 10 целых положительных чисел
Решение задачи: «Написать функцию IsSquare(K), проверяющую, является ли K квадратом некоторого целого числа»
textual
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- #include <locale.h>
- int IsSquare(int k){
- if(k<0)
- return 0;
- float cmp=sqrt(k);
- if(fabsf(cmp - int(cmp))<0.0000001)
- return 1;
- return 0;
- }
- int main(int argc, char** argv){
- setlocale(LC_ALL, "rus");
- int k;
- printf("Введите число: ");
- scanf("%d", &k);
- printf("%s\n", IsSquare(k)?"Число является квадратом":"Число является не квадратом");
- system("PAUSE");
- return 0;
- }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с числами и вводом/выводом
- Определение функции IsSquare(K), которая проверяет, является ли число K квадратом целого числа
- Проверка входного числа на отрицательность и возврат 0 в случае отрицательного числа
- Вычисление квадратного корня числа K с помощью функции sqrt() и сохранение результата в переменную cmp
- Проверка, является ли дробная часть от результата вычисления квадратного корня равной 0. Если да, то число K является квадратом целого числа, иначе возвращается 0
- Ввод числа K с клавиатуры с помощью функции scanf()
- Вывод на экран сообщения о том, является ли число K квадратом целого числа
- Вызов функции system(
PAUSE
) для приостановки работы программы до нажатия клавиши Enter - Конец программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д