Структуры данных: массивы (C)

Материал из Информационная безопасностя
Перейти к навигации Перейти к поиску

Массивы

Задачи

Вывод всех целых чисел массива через пробел циклом 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 }

Задачник