Написать функцию, вычисляющую среднее арифметическое элементов массива - C (СИ)
Формулировка задачи:
- #include <stdio.h>
- #include <stdlib.h>
- #define n 50
- void masi(int ar[n],int k)
- {
- printf("Введеный массив:\n");
- for(int i=0;i!=k;i++)
- printf("A[%d]=%d\n",i,ar[i]);
- }
- void masf(float ar[n],int k)
- {
- printf("Введеный массив:\n");
- for(int i=0;i!=k;i++)
- printf("A[%d]=%2.2f\n",i,ar[i]);
- }
- void massr(float ar[n],int k)
- {
- float s=0;
- for(int i=0;i!=k;i++)
- s+=ar[i];
- printf("srednee= %2.2f",s/k);
- }
- void masmax(float ar[n],int k)
- {
- float max=ar[0];
- for(int i=0;i!=k;i++)
- if (max<ar[i]) max=ar[i];
- printf("maximal'noe: %2.2f",max);
- }
- void massort(float ar[n],int k,int flag)
- { int j,i;
- float tmp;
- for(i=0;i!=k-1;i++)
- for(j=1;j!=k;j+=i);
- {
- if (flag==1) { if (ar[i]<ar[j]) { tmp=ar[i];ar[i]=ar[j];ar[j]=tmp; }}
- if (flag==0) {if (ar[i]<ar[j]) { tmp=ar[i];ar[i]=ar[j];ar[j]=tmp; }}
- }
- }
- void odinelem(int ar1[n],int ar2[n],int k)
- { int i,j;
- int tmp=0;
- for( i=0;i!=k-1;i++)
- for( j=1;j!=k;j+=i);
- {
- if (ar1[i]==ar2[j]) tmp=1;
- if (tmp==1) printf("massivi sodergit odinakovie znacheniya");
- }
- }
- void poryadok(int ar[n],int k)
- {
- int tmp;
- for (int i=0; i!=k/2; i++)
- for (int j=k; i!=k/2; i--) {
- tmp=ar[i]; ar[i]=ar[j];ar[j]=tmp;}
- }
Решение задачи: «Написать функцию, вычисляющую среднее арифметическое элементов массива»
- 1)
- void masi(int ar[n],int k)
- {
- for(int i=0;i!=k;i++)
- printf("A[%d]=%d\n",i,ar[i]);
- printf("\n");
- }
- void masf(float ar[n],int k)
- {
- for(int i=0;i!=k;i++)
- printf("A[%d]=%2.2f\n",i,ar[i]);
- printf("\n");
- }
- 2)
- void massr(float ar[n],int k)
- {
- float s=0;
- for(int i=0;i!=k;i++)
- s+=ar[i];
- printf("srednee= %2.2f\n",s/k);
- }
- 3)
- void masmax(float ar[n],int k)
- {
- float max=ar[0];
- for(int i=0;i!=k;i++)
- if (max<ar[i]) max=ar[i];
- printf("maximal'noe: %2.2f\n",max);
- }
- 4)
- void massort(float ar[n],int k,int flag)
- { int j,i;
- float tmp;
- for( i=0; i < k; i++) {
- for( j = k-1; j > i; j-- )
- { if (flag==1)
- if ( ar[j-1] > ar[j] ){ tmp=ar[j-1]; ar[j-1]=ar[j]; ar[j]=tmp;}
- if (flag==0)
- if ( ar[j-1] < ar[j] ){ tmp=ar[j-1]; ar[j-1]=ar[j]; ar[j]=tmp;}
- }
- }}
- 5)
- void odinelem(int ar1[n],int ar2[n],int k)
- { int i,j;
- int tmp=1;
- printf("proverka na odinakovost':\n");
- for( i=0;i<=k;i++)
- for( j=0;j<=k;j++);
- {
- if (ar1[i]==ar2[j]) tmp=1;
- }
- if (tmp==1) printf("massivi sodergat odinakovie znacheniya\n");
- }
- 6)
- void poryadok(int ar[n],int k)
- {
- int tmp;
- for (int i=0; i < k/2; i++) {
- tmp=ar[i]; ar[i]=ar[k-i-1];ar[k-i-1]=tmp;}
- }
- 7)
- void main() {
- srand(time(NULL));
- int k,flag;
- float ar[n];int ar1[n],ar2[n];
- printf("vvdeite razmernost' massiva < %d: ",n);
- scanf("%d",&k);
- for (int i=0; i != k; i++)
- {
- ar[i]=rand() % 5;
- ar1[i]= rand() % 5;
- ar2[i]= rand() % 5;
- }
- masi(ar1,k); masi(ar2,k); odinelem(ar1,ar2,k);
- printf("massiv s izmenennim poryadkom\n"); poryadok(ar1,k);
- masi(ar1,k);
- printf("\n");printf("sortirovat' po vozrastaniu(1) ili ubivaniu(0)?: \n");
- scanf("%d",&flag); massort(ar,k,flag); masf(ar,k);
- masmax(ar,k);
- system("PAUSE");
- }
Объяснение кода листинга программы
1) В функции masi выводится на экран содержимое массива ar с шагом k элементов. 2) В функции massr происходит вычисление среднего арифметического элементов массива ar. 3) В функции masmax находится максимальный элемент массива ar. 4) В функции massort происходит сортировка элементов массива ar по возрастанию или убыванию, в зависимости от значения параметра flag. 5) В функции odinelem проверяется, являются ли два массива одинаковыми. 6) В функции poryadok происходит перестановка элементов массива ar в порядке убывания. 7) В функции main создаются три массива ar1, ar2, ar, которые заполняются случайными числами. 8) Вызываются функции masi, odinelem, poryadok, massort, masmax для работы с этими массивами.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д