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

Материал из Информационная безопасностя
Перейти к навигации Перейти к поиску
(Новая страница: «== Массивы == * [https://www.tutorialspoint.com/cprogramming/c_arrays.htm Массивы]»)
 
 
(не показано 10 промежуточных версий этого же участника)
Строка 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/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 }

Задачник