Структуры данных: массивы (C): различия между версиями
Перейти к навигации
Перейти к поиску
| (не показано 9 промежуточных версий этого же участника) | |||
| Строка 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/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 }