הערה (קובץ קוד)
קובץ זה הוא קובץ קוד מסוג C.
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
bool getNumbers(int *numbers, int numOfNums)
{
printf("Enter numbers:\n");
for (int i = 0; i < numOfNums; i++)
{
int current;
if (scanf("%d", ¤t) != 1)
{
printf("Invalid number\n");
free(numbers);
return false;
}
numbers[i] = current;
}
return true;
}
int isPerfectSquare(int num)
{
int result = -1;
for (int i = 0; i * i <= num; i++)
{
if (i * i == num)
{
result = i;
break;
}
}
return result;
}
void thePerfectSquares(int *numbers, int length)
{
int counter = 0;
for (int i = 0; i < length; i++)
{
int j = isPerfectSquare(numbers[i]);
if (j >= 0)
{
counter++;
printf("The number %d is a perfect square: %d=%d*%d\n", numbers[i], numbers[i], j, j);
}
}
printf("Total number of perfect squares is %d\n", counter);
}
int main()
{
int numOfNums = 0;
printf("Enter size of input:\n");
scanf(" %d", &numOfNums);
if (numOfNums > 0)
{
int *numbers = (int *)(malloc(numOfNums * sizeof(int)));
if (numbers != NULL && getNumbers(numbers, numOfNums))
{
thePerfectSquares(numbers, numOfNums);
free(numbers);
}
}
else
{
printf("Invalid size\n");
}
return 0;
}