Написать функцию 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;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек для работы с числами и вводом/выводом
  2. Определение функции IsSquare(K), которая проверяет, является ли число K квадратом целого числа
  3. Проверка входного числа на отрицательность и возврат 0 в случае отрицательного числа
  4. Вычисление квадратного корня числа K с помощью функции sqrt() и сохранение результата в переменную cmp
  5. Проверка, является ли дробная часть от результата вычисления квадратного корня равной 0. Если да, то число K является квадратом целого числа, иначе возвращается 0
  6. Ввод числа K с клавиатуры с помощью функции scanf()
  7. Вывод на экран сообщения о том, является ли число K квадратом целого числа
  8. Вызов функции system(PAUSE) для приостановки работы программы до нажатия клавиши Enter
  9. Конец программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.933 из 5
Похожие ответы