Отладка (C)

Материал из Информационная безопасностя
Перейти к навигации Перейти к поиску

Отладка

Примеры

Простое число

#include <stdio.h>
#include <stdbool.h>
#include <math.h>

bool IsSimple(int num) {
    bool simple = true;
    for (int i = 2; i < trunc(sqrt(num)); ++i) {
        if (num % i == 0) {
            simple = false;
            break;
        }
    }

    return simple;
}

int main() {
    int n;
    printf("Please, enter a number:\n");
    fflush(stdout);
    scanf_s("%d", &n);

    bool simple = IsSimple(n);

    printf("Number %d is %s.", n, simple ? "simple" : "composite");
    fflush(stdout);
}

Числа Фибоначчи

#include <stdio.h>

int main() {
    int n;
    printf("Please, enter a number:\n");
    fflush(stdout);
    scanf_s("%d", &n);

    int a = 0;
    int b = 1;

    while(b < n) {
        int tmp = a;
        a = b;
        b = tmp + b;
    }

    printf("Number %d is %sa fibonacci number.", n, (b == n) ? "" : "not ");
    fflush(stdout);
}

Доброе утро мистер Иван

#include <stdio.h>
#include <string.h>

char *GoodMorning(char *n, char *t) {
    char* intro = "Good morning ";

    strcat(intro, " ");
    strcat(intro, t);
    strcat(intro, " ");
    strcat(intro, n);
    strcat(intro, "!");

    return intro;
}

int main() {
    char* n = "Ivan";
    char* t = "mr.";

    printf("%s", GoodMorning(n, t));
    fflush(stdout);
}

Факториал

// 5! = 1*2*3*4*5
// 5! = 5*4*3*2*1
// 4! =   4*3*2*1
// 3! =     3*2*1
// 2! =       2*1
// 1! =         1
// 5! = 5*4!
// 4! = 4*3!
// 3! = 3*2!
// 2! = 2*1!
// 1! = 1
#include <stdio.h>

int factorial(int num) {
    return (num == 1) ? 1 : num * factorial(num - 1);
}

int main() {
    int n;
    printf("Please, enter a number:\n");
    fflush(stdout);
    scanf_s("%d", &n);

    int f = factorial(n);

    printf("%d! = %d", n, f);
    fflush(stdout);
}