Отладка (C): различия между версиями

Материал из Информационная безопасностя
Перейти к навигации Перейти к поиску
(Новая страница: «== Отладка == * [https://docs.microsoft.com/ru-ru/visualstudio/debugger/?view=vs-2019 Отладка в Visual Studio] * [https://www.jetbrains.com/help/cl...»)
 
Строка 1: Строка 1:
 +
{{TOCRight}}
 
== Отладка ==
 
== Отладка ==
 
* [https://docs.microsoft.com/ru-ru/visualstudio/debugger/?view=vs-2019 Отладка в Visual Studio]
 
* [https://docs.microsoft.com/ru-ru/visualstudio/debugger/?view=vs-2019 Отладка в Visual Studio]
 
* [https://www.jetbrains.com/help/clion/debugging-code.html Отладка в CLion]
 
* [https://www.jetbrains.com/help/clion/debugging-code.html Отладка в CLion]
 +
 +
== Примеры ==
 +
=== Простое число ===
 +
<syntaxhighlight lang="с" line>
 +
#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);
 +
}
 +
</syntaxhighlight>
 +
 +
=== Числа Фибоначчи ===
 +
<syntaxhighlight lang="с" line>
 +
#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);
 +
}
 +
</syntaxhighlight>
 +
 +
=== Доброе утро мистер Иван ===
 +
<syntaxhighlight lang="с" line>
 +
#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);
 +
}
 +
</syntaxhighlight>
 +
 +
=== Факториал ===
 +
<syntaxhighlight lang="с" line>
 +
// 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);
 +
}
 +
</syntaxhighlight>

Версия 10:19, 15 июня 2021

Отладка

Примеры

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

#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);
}