חזור לתיקייה: part2

mtm_tot

חיפוש בתיקיה
Ctrl K
לחץ כאן או הקש Ctrl K כדי לחפש בכל התיקיה

    mtm_tot

    02340124

    מבוא לתכנות מערכות

    רשימות הרצאה לקריאה בשבת

    mtm_tot

    הופק מתוך תקיית התואר של שקד

    uni-folder.vercel.app

    mtm-tot.c

    הערה (קובץ קוד)

    קובץ זה הוא קובץ קוד מסוג 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", &current) != 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;
    }