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

Материал из Информационная безопасностя
Перейти к навигации Перейти к поиску
(Новая страница: «== Отладка == * [https://docs.microsoft.com/ru-ru/visualstudio/debugger/?view=vs-2019 Отладка в Visual Studio] * [https://www.jetbrains.com/help/cl...»)
 
 
(не показана 1 промежуточная версия этого же участника)
Строка 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="c" 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="c" 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="c" 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="c" 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:20, 15 июня 2021

Отладка

Примеры

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

 1 #include <stdio.h>
 2 #include <stdbool.h>
 3 #include <math.h>
 4 
 5 bool IsSimple(int num) {
 6     bool simple = true;
 7     for (int i = 2; i < trunc(sqrt(num)); ++i) {
 8         if (num % i == 0) {
 9             simple = false;
10             break;
11         }
12     }
13 
14     return simple;
15 }
16 
17 int main() {
18     int n;
19     printf("Please, enter a number:\n");
20     fflush(stdout);
21     scanf_s("%d", &n);
22 
23     bool simple = IsSimple(n);
24 
25     printf("Number %d is %s.", n, simple ? "simple" : "composite");
26     fflush(stdout);
27 }

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

 1 #include <stdio.h>
 2 
 3 int main() {
 4     int n;
 5     printf("Please, enter a number:\n");
 6     fflush(stdout);
 7     scanf_s("%d", &n);
 8 
 9     int a = 0;
10     int b = 1;
11 
12     while(b < n) {
13         int tmp = a;
14         a = b;
15         b = tmp + b;
16     }
17 
18     printf("Number %d is %sa fibonacci number.", n, (b == n) ? "" : "not ");
19     fflush(stdout);
20 }

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

 1 #include <stdio.h>
 2 #include <string.h>
 3 
 4 char *GoodMorning(char *n, char *t) {
 5     char* intro = "Good morning ";
 6 
 7     strcat(intro, " ");
 8     strcat(intro, t);
 9     strcat(intro, " ");
10     strcat(intro, n);
11     strcat(intro, "!");
12 
13     return intro;
14 }
15 
16 int main() {
17     char* n = "Ivan";
18     char* t = "mr.";
19 
20     printf("%s", GoodMorning(n, t));
21     fflush(stdout);
22 }

Факториал

 1 // 5! = 1*2*3*4*5
 2 // 5! = 5*4*3*2*1
 3 // 4! =   4*3*2*1
 4 // 3! =     3*2*1
 5 // 2! =       2*1
 6 // 1! =         1
 7 // 5! = 5*4!
 8 // 4! = 4*3!
 9 // 3! = 3*2!
10 // 2! = 2*1!
11 // 1! = 1
12 #include <stdio.h>
13 
14 int factorial(int num) {
15     return (num == 1) ? 1 : num * factorial(num - 1);
16 }
17 
18 int main() {
19     int n;
20     printf("Please, enter a number:\n");
21     fflush(stdout);
22     scanf_s("%d", &n);
23 
24     int f = factorial(n);
25 
26     printf("%d! = %d", n, f);
27     fflush(stdout);
28 }