Алгоритмы (C): различия между версиями
Перейти к навигации
Перейти к поиску
Строка 224: | Строка 224: | ||
=== Найти min, удовлетворяющее условию p(x) === | === Найти min, удовлетворяющее условию p(x) === | ||
<syntaxhighlight lang="c" line> | <syntaxhighlight lang="c" line> | ||
+ | #include <stdio.h> | ||
+ | #include <windows.h> | ||
+ | #include <stdbool.h> | ||
+ | #include <float.h> | ||
+ | bool p(double x) { | ||
+ | return x > 0; | ||
+ | } | ||
+ | |||
+ | int main() { | ||
+ | SetConsoleOutputCP(CP_UTF8); | ||
+ | int n, x; | ||
+ | |||
+ | printf("Введите целое число n (n > 0):"); | ||
+ | scanf_s("%d", &n); | ||
+ | |||
+ | bool exists = false; | ||
+ | double min = DBL_MAX; | ||
+ | for (int i = 0; i < n; ++i) { | ||
+ | printf("Введите %d число:", i+1); | ||
+ | scanf_s("%d", &x); | ||
+ | if ((x < min) && p(x)) { | ||
+ | min = x; | ||
+ | exists = true; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | if (exists) { | ||
+ | printf("Минимальное из введенных чисел, удовлетворяющих условию: %f", min); | ||
+ | } else { | ||
+ | printf("Нет чисел, удовлетворяющих условию"); | ||
+ | } | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Версия 15:42, 5 июня 2021
Код программ
Сумма вводимых целых чисел
1 #include <stdio.h>
2 #include <windows.h>
3
4 int main() {
5 SetConsoleOutputCP(CP_UTF8);
6 int n, x;
7
8 printf("Введите число слагаемых:");
9 scanf_s("%d", &n);
10
11 int s = 0;
12 for(int i = 1; i <= n; i++) {
13 printf("Введите слагаемое №%d:", i);
14 scanf_s("%d", &x);
15 s += x;
16 }
17
18 printf("Сумма равна %d", s);
19 }
Произведение целых чисел
1 #include <stdio.h>
2 #include <windows.h>
3
4 int main() {
5 SetConsoleOutputCP(CP_UTF8);
6 int n, x;
7
8 printf("Введите число множителей:");
9 scanf_s("%d", &n);
10
11 int p = 1;
12 for(int i = 1; i <= n; i++) {
13 printf("Введите множитель №%d:", i);
14 scanf_s("%d", &x);
15 p *= x;
16 }
17
18 printf("Произведение равно %d", p);
19 }
Сколько нечетных среди n введенных
1 #include <stdio.h>
2 #include <windows.h>
3
4 int main() {
5 SetConsoleOutputCP(CP_UTF8);
6 int n, x;
7
8 printf("Введите n:");
9 scanf_s("%d", &n);
10
11 int c = 0;
12 for(int i = 1; i <= n; i++) {
13 printf("Введите целое число:");
14 scanf_s("%d", &x);
15 if (x % 2 != 0) {
16 c++;
17 }
18 }
19
20 printf("Количество нечетных равно %d", c);
21 }
Защита от неверного ввода
1 #include <stdio.h>
2 #include <windows.h>
3
4 int main() {
5 SetConsoleOutputCP(CP_UTF8);
6 float x;
7
8 do {
9 printf("Введите x>0:");
10 scanf_s("%f", &x);
11 if (x <= 0) {
12 printf("Неверный ввод\n");
13 }
14 } while (x <= 0);
15 }
Вывод 10 первых степеней двойки
1 #include <stdio.h>
2 #include <windows.h>
3
4 int main() {
5 SetConsoleOutputCP(CP_UTF8);
6 int x = 2;
7
8 for (int i = 1; i <= 10; i++) {
9 printf("%3d %5d\n", i, x);
10 x *= 2;
11 }
12 }
Вывод всех двухзначных чисел, кратных 5
1 #include <stdio.h>
2 #include <windows.h>
3
4 int main() {
5 SetConsoleOutputCP(CP_UTF8);
6 int x = 10;
7
8 while (x < 100) {
9 printf("%3d\n", x);
10 x += 5;
11 }
12 }
Вывод n первых чисел Фибоначчи
1 #include <stdio.h>
2 #include <windows.h>
3
4 int main() {
5 SetConsoleOutputCP(CP_UTF8);
6 int n, a, b;
7
8 printf("Введите целое число n (n > 1):");
9 scanf_s("%d", &n);
10
11 a = 1; b = 1;
12 printf("%d %d ", a, b);
13 for (int i = 1; i <= n - 2; ++i) {
14 int tmp = a;
15 a = b;
16 b += tmp;
17 printf("%d ", b);
18 }
19 }
Найти НОД(A,B), используя алгоритм Евклида:
1 #include <stdio.h>
2 #include <windows.h>
3
4 int main() {
5 SetConsoleOutputCP(CP_UTF8);
6 int a, b;
7
8 printf("Введите целое число a:");
9 scanf_s("%d", &a);
10 printf("Введите целое число b:");
11 scanf_s("%d", &b);
12
13 while (b != 0) {
14 int tmp = a;
15 a = b;
16 b = tmp % b;
17 }
18
19 printf("НОД(A, B) = %d", a);
20 }
Найти сумму цифр целого числа m
1 #include <stdio.h>
2 #include <windows.h>
3
4 int main() {
5 SetConsoleOutputCP(CP_UTF8);
6 int m;
7
8 printf("Введите целое число m:");
9 scanf_s("%d", &m);
10
11 int s = 0;
12 int m1 = abs(m);
13
14 while (m1 > 0) {
15 s += m1 % 10;
16 m1 = m1 / 10;
17 }
18
19 printf("Сумма цифр числа %d равна %d", m, s);
20 }
Найти max из введенных чисел
1 #include <stdio.h>
2 #include <windows.h>
3
4 int main() {
5 SetConsoleOutputCP(CP_UTF8);
6 int n, x;
7
8 printf("Введите целое число n (n>0):");
9 scanf_s("%d", &n);
10
11 printf("Введите число 1:");
12 scanf_s("%d", &x);
13 int max = x;
14
15 for (int i = 2; i <= n; i++) {
16 printf("Введите число %d:", i);
17 scanf_s("%d", &x);
18 if (x > max) {
19 max = x;
20 }
21 }
22
23 printf("Максимальное из введенных чисел: %d", max);
24 }
Найти min, удовлетворяющее условию p(x)
1 #include <stdio.h>
2 #include <windows.h>
3 #include <stdbool.h>
4 #include <float.h>
5
6 bool p(double x) {
7 return x > 0;
8 }
9
10 int main() {
11 SetConsoleOutputCP(CP_UTF8);
12 int n, x;
13
14 printf("Введите целое число n (n > 0):");
15 scanf_s("%d", &n);
16
17 bool exists = false;
18 double min = DBL_MAX;
19 for (int i = 0; i < n; ++i) {
20 printf("Введите %d число:", i+1);
21 scanf_s("%d", &x);
22 if ((x < min) && p(x)) {
23 min = x;
24 exists = true;
25 }
26 }
27
28 if (exists) {
29 printf("Минимальное из введенных чисел, удовлетворяющих условию: %f", min);
30 } else {
31 printf("Нет чисел, удовлетворяющих условию");
32 }
33 }