Сделать перемещение массива В вправо на две позиции - C (СИ)
Формулировка задачи:
Помогите с массивами/строками плз ...
Задан массив A(n), n<= 12. Сделать массив В с элементов массива А, значение которых не превышают среднее арифметическое массива А. Сделать перемещение массива В вправо на две позиции.
В заданной строке определить количество двойных согласных.
вот среднее, а как с массива в массив не знаю(
#include <stdio.h> #include <time.h> #include <stdlib.h> # define n 12 int main() { int a[n],i,sum,ser; srand(time(NULL)); for (i=0;i<n;i++) a[i]=rand()%10; for (i=0;i<n;i++) printf("%d ",a[i]); sum=0; for (i=0;i<n;i++){sum=sum+a[i]; ser=(float)sum/i;} printf("\n\sum=%d\n\ser=%d",sum,ser); getch(); return 0; }
Решение задачи: «Сделать перемещение массива В вправо на две позиции»
textual
Листинг программы
int A[12], *B; for(s=i=0; i<n; i++) s+= A[i]; ser = s/n; for(i=j=0; i<n; i++) if (A[i] <= ser) j++; B = (int *)malloc(j*sizeof(int)) for(i=j=0; i<n; i++) { if (A[i] <= ser) B[j++] = A[i]; }
Объяснение кода листинга программы
- Объявляется массив A размером 12 и указатель B.
- Переменная s инициализируется значением 0.
- Переменная i инициализируется значением 0.
- Переменная n не инициализируется, предполагается, что ее значение уже определено.
- В цикле происходит суммирование элементов массива A и сохранение результата в переменной s.
- Переменная ser инициализируется значением s/n.
- В цикле происходит подсчет количества элементов массива A, значение которых меньше или равно ser.
- Выделяется память под массив B с помощью функции malloc.
- Переменная i инициализируется значением 0.
- В цикле происходит копирование элементов массива A, значение которых меньше или равно ser, в массив B.
- Переменная j инициализируется значением 0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д