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

Материал из Информационная безопасностя
Перейти к навигации Перейти к поиску
 
Строка 6: Строка 6:
 
== Примеры ==
 
== Примеры ==
 
=== Простое число ===
 
=== Простое число ===
<syntaxhighlight lang="с" line>
+
<syntaxhighlight lang="c" line>
 
#include <stdio.h>
 
#include <stdio.h>
 
#include <stdbool.h>
 
#include <stdbool.h>
Строка 37: Строка 37:
  
 
=== Числа Фибоначчи ===
 
=== Числа Фибоначчи ===
<syntaxhighlight lang="с" line>
+
<syntaxhighlight lang="c" line>
 
#include <stdio.h>
 
#include <stdio.h>
  
Строка 61: Строка 61:
  
 
=== Доброе утро мистер Иван ===
 
=== Доброе утро мистер Иван ===
<syntaxhighlight lang="с" line>
+
<syntaxhighlight lang="c" line>
 
#include <stdio.h>
 
#include <stdio.h>
 
#include <string.h>
 
#include <string.h>
Строка 87: Строка 87:
  
 
=== Факториал ===
 
=== Факториал ===
<syntaxhighlight lang="с" line>
+
<syntaxhighlight lang="c" line>
 
// 5! = 1*2*3*4*5
 
// 5! = 1*2*3*4*5
 
// 5! = 5*4*3*2*1
 
// 5! = 5*4*3*2*1

Текущая версия на 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 }