Вот такая вот задачка:) - C (СИ)
Формулировка задачи:
1) Дан массив, состоящий из 20 целых чисел. Вывести все числа, которые встречаются в этом массиве несколько раз.
2)Заполнить файл F целыми числами, полученными с помощью генератора случайных чисел. Найти сумму минимального и максимального элементов этого файла.
Решение задачи: «Вот такая вот задачка:)»
textual
Листинг программы
#include<stdio.h> #include<stdlib.h> #include<time.h> #define N 20 int main() { int i, j, a[N], min, max, *count, m; srand(time(NULL)); for(i = 0; i < N; i++) printf("%3d", a[i] = rand() % 10); putchar('\n'); for(i = 0, min = max = a[0]; i < N; i++) if (a[i] < min) min = a[i]; else if (a[i] > max) max = a[i]; m = max - min + 1; count = (int *)calloc(m, sizeof(*count)); for(i = 0; i < N; i++) ++count[a[i] - min]; for(i = 0; i < m; i++) if (count[i] > 1) printf("%3d", i + min); return 0; }
Объяснение кода листинга программы
В этом коде выполняется следующее:
- Объявляются переменные:
i
,j
- для циклов;a[N]
- массив, заполняемый случайными числами от 0 до 9;min
,max
- для хранения минимального и максимального значений в массиве;count
- для подсчёта количества каждого числа в массиве;m
- для хранения размера массиваcount
.
- Инициализируются начальные значения:
min
иmax
устанавливаются равными первому элементу массиваa[0]
, который инициализируется случайным числом;m
вычисляется какmax - min + 1
.
- Динамически выделяется память под массив
count
с помощью функцииcalloc(m, sizeof(*count))
. - Заполняются переменные
min
иmax
и массивcount
. - Выводятся на экран все числа, встречающиеся в массиве
a
более одного раза, сдвинутые влево наmin
. - Программа возвращает 0, завершая свою работу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д