Написать функцию, вычисляющую среднее арифметическое элементов массива - 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 для работы с этими массивами.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д