Структуры данных: массивы (C): различия между версиями
Перейти к навигации
Перейти к поиску
(не показано 8 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
+ | {{TOCRight}} | ||
== Массивы == | == Массивы == | ||
* [https://docs.microsoft.com/ru-ru/cpp/c-language/one-dimensional-arrays?view=msvc-160 Одномерные массивы (справка Микрософт)] | * [https://docs.microsoft.com/ru-ru/cpp/c-language/one-dimensional-arrays?view=msvc-160 Одномерные массивы (справка Микрософт)] | ||
* [https://docs.microsoft.com/ru-ru/cpp/c-language/multidimensional-arrays-c?view=msvc-160 Многомерные массивы (справка Микрософт)] | * [https://docs.microsoft.com/ru-ru/cpp/c-language/multidimensional-arrays-c?view=msvc-160 Многомерные массивы (справка Микрософт)] | ||
* [https://www.tutorialspoint.com/cprogramming/c_arrays.htm Массивы] | * [https://www.tutorialspoint.com/cprogramming/c_arrays.htm Массивы] | ||
+ | |||
+ | == Задачи == | ||
+ | === Вывод всех целых чисел массива через пробел циклом For === | ||
+ | <syntaxhighlight lang="c" line> | ||
+ | #include <stdio.h> | ||
+ | |||
+ | int main() { | ||
+ | int a[10] = {1,5,8,3,9,23,15}; | ||
+ | int size = sizeof(a) / sizeof(a[0]); | ||
+ | |||
+ | for (int i = 0; i < size; ++i) { | ||
+ | printf("%d ", a[i]); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Сделать массив из первых n нечётных чисел === | ||
+ | <syntaxhighlight lang="c" line> | ||
+ | #include <stdio.h> | ||
+ | |||
+ | int main() { | ||
+ | int a[10]; | ||
+ | int size = sizeof(a) / sizeof(a[0]); | ||
+ | |||
+ | for (int i = 0; i < size; ++i) { | ||
+ | a[i] = 2*(i+1)-1; | ||
+ | printf("%d ", a[i]); | ||
+ | } | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Сгенерировать массив случайных чисел === | ||
+ | <syntaxhighlight lang="c" line> | ||
+ | #include <stdio.h> | ||
+ | #include <stdlib.h> | ||
+ | |||
+ | int main() { | ||
+ | int a[10]; | ||
+ | int size = sizeof(a) / sizeof(a[0]); | ||
+ | |||
+ | for (int i = 0; i < size; ++i) { | ||
+ | a[i] = rand() % 201 - 100; | ||
+ | } | ||
+ | |||
+ | for (int i = 0; i < size; ++i) { | ||
+ | printf("%d ", a[i]); | ||
+ | } | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Вывести все содержащиеся в массиве нечетные числа в порядке возрастания их индексов, а также их количество === | ||
+ | <syntaxhighlight lang="c" line> | ||
+ | #include <stdio.h> | ||
+ | #include <stdlib.h> | ||
+ | |||
+ | int main() { | ||
+ | int a[10]; | ||
+ | int size = sizeof(a) / sizeof(a[0]); | ||
+ | |||
+ | for (int i = 0; i < size; ++i) { | ||
+ | a[i] = rand() % 100; | ||
+ | printf("%d ", a[i]); | ||
+ | } | ||
+ | printf("\n"); | ||
+ | |||
+ | int count = 0; | ||
+ | for (int i = 0; i < size; ++i) { | ||
+ | if (a[i] % 2 == 1) { | ||
+ | printf("%d ", a[i]); | ||
+ | count++; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | printf("\nOdd numbers count = %d", count); | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Разделить массив на два: на положительные+ноль и отрицательные числа === | ||
+ | <syntaxhighlight lang="c" line> | ||
+ | #include <stdio.h> | ||
+ | #include <stdlib.h> | ||
+ | |||
+ | int main() { | ||
+ | int a[10], pos[10], neg[10]; | ||
+ | int size = sizeof(a) / sizeof(a[0]); | ||
+ | |||
+ | int posCount = 0; | ||
+ | int negCount = 0; | ||
+ | for (int i = 0; i < size; ++i) { | ||
+ | a[i] = rand() % 201 - 100; | ||
+ | printf("%d ", a[i]); | ||
+ | if (a[i] >= 0) { | ||
+ | pos[posCount] = a[i]; | ||
+ | posCount++; | ||
+ | } | ||
+ | else { | ||
+ | neg[negCount] = a[i]; | ||
+ | negCount++; | ||
+ | } | ||
+ | } | ||
+ | printf("\n"); | ||
+ | |||
+ | for (int i = 0; i < posCount; ++i) { | ||
+ | printf("%d ",pos[i]); | ||
+ | } | ||
+ | printf("\n"); | ||
+ | |||
+ | for (int i = 0; i < negCount; ++i) { | ||
+ | printf("%d ",neg[i]); | ||
+ | } | ||
+ | printf("\n"); | ||
+ | |||
+ | } | ||
+ | </syntaxhighlight> | ||
== Задачник == | == Задачник == | ||
* [http://ptaskbook.com/ru/tasks/array.php Одномерные массивы] | * [http://ptaskbook.com/ru/tasks/array.php Одномерные массивы] | ||
* [http://ptaskbook.com/ru/tasks/matrix.php Двумерные массивы (матрицы)] | * [http://ptaskbook.com/ru/tasks/matrix.php Двумерные массивы (матрицы)] |
Текущая версия на 15:35, 17 июня 2021
Массивы
Задачи
Вывод всех целых чисел массива через пробел циклом For
1 #include <stdio.h>
2
3 int main() {
4 int a[10] = {1,5,8,3,9,23,15};
5 int size = sizeof(a) / sizeof(a[0]);
6
7 for (int i = 0; i < size; ++i) {
8 printf("%d ", a[i]);
9 }
10 }
Сделать массив из первых n нечётных чисел
1 #include <stdio.h>
2
3 int main() {
4 int a[10];
5 int size = sizeof(a) / sizeof(a[0]);
6
7 for (int i = 0; i < size; ++i) {
8 a[i] = 2*(i+1)-1;
9 printf("%d ", a[i]);
10 }
11 }
Сгенерировать массив случайных чисел
1 #include <stdio.h>
2 #include <stdlib.h>
3
4 int main() {
5 int a[10];
6 int size = sizeof(a) / sizeof(a[0]);
7
8 for (int i = 0; i < size; ++i) {
9 a[i] = rand() % 201 - 100;
10 }
11
12 for (int i = 0; i < size; ++i) {
13 printf("%d ", a[i]);
14 }
15 }
Вывести все содержащиеся в массиве нечетные числа в порядке возрастания их индексов, а также их количество
1 #include <stdio.h>
2 #include <stdlib.h>
3
4 int main() {
5 int a[10];
6 int size = sizeof(a) / sizeof(a[0]);
7
8 for (int i = 0; i < size; ++i) {
9 a[i] = rand() % 100;
10 printf("%d ", a[i]);
11 }
12 printf("\n");
13
14 int count = 0;
15 for (int i = 0; i < size; ++i) {
16 if (a[i] % 2 == 1) {
17 printf("%d ", a[i]);
18 count++;
19 }
20 }
21
22 printf("\nOdd numbers count = %d", count);
23 }
Разделить массив на два: на положительные+ноль и отрицательные числа
1 #include <stdio.h>
2 #include <stdlib.h>
3
4 int main() {
5 int a[10], pos[10], neg[10];
6 int size = sizeof(a) / sizeof(a[0]);
7
8 int posCount = 0;
9 int negCount = 0;
10 for (int i = 0; i < size; ++i) {
11 a[i] = rand() % 201 - 100;
12 printf("%d ", a[i]);
13 if (a[i] >= 0) {
14 pos[posCount] = a[i];
15 posCount++;
16 }
17 else {
18 neg[negCount] = a[i];
19 negCount++;
20 }
21 }
22 printf("\n");
23
24 for (int i = 0; i < posCount; ++i) {
25 printf("%d ",pos[i]);
26 }
27 printf("\n");
28
29 for (int i = 0; i < negCount; ++i) {
30 printf("%d ",neg[i]);
31 }
32 printf("\n");
33
34 }