Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Sunman
56 / 56 / 14
Регистрация: 02.03.2010
Сообщений: 407
1

Написать функцию, вычисляющую среднее арифметическое элементов массива

01.12.2010, 18:39. Просмотров 949. Ответов 2
Метки нет (Все метки)

Доброго вечера, господа.
Есть несколько заданий.
1) Написать две функции для вывода на экран значений элементов массивов целых и
вещественных чисел.
2) Написать функцию, вычисляющую среднее арифметическое элементов массива
вещественных чисел.
3) Написать функцию, которая возвращает максимальный элемент заданного массива
целых чисел.
4) Написать функцию сортировки массива целых чисел. Порядок сортировки (по
возрастанию либо по убыванию) задавать аргументом функции.
5) Написать функцию, которая проверяет, содержат ли два массива целых чисел
одинаковые элементы (даже если элементы расположены в различном порядке).
6) Написать функцию, которая изменяет порядок следования элементов в массиве целых
чисел на противоположный.
7) Написать программу, демонстрирующую работу функций заданий 2-6 на примере
нескольких массивов (имеющих различное количество элементов). Значения элементов
массивов достаточно задавать при помощи конструкций инициализации (вместо этого
массивы можно заполнить случайными числами). Для вывода на экран значений
элементов массивов использовать функции задания 1.


Интересует конкретно седьмое задание. И я не могу понять смысл доп. условия:" Все функции должны получать массивы в качестве аргументов (а не использовать
массивы, объявленные в глобальной области видимости)." Где заполнять массивы? Внутри функций? или в мэйне? Как это вообще будет выглядеть?

И если кому совсем не трудно, проверьте функции. Заранее спасибо.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#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;}
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2010, 18:39
Ответы с готовыми решениями:

Написать функцию, вычисляющую среднее арифметическое между диагоналями матрицы
Заполнить двухмерный массив случайными целыми числами (10Х10) от 1 до 255 и вывести его на экран и...

Написать программу, вычисляющую сумму и среднее арифметическое последовательности положительных чисел
Если есть какие то недочеты, то напишите в комментариях. #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt;...

Вычислить среднее геометрическое и среднее арифметическое значения положительных элементов массива
Помогите пожалуйста. До 24 мая и до 14:00 надо сделать программу, всю голову изломал уже ничего не...

Найти среднее арифметическое и среднее геометрическое элементов двумерного массива
Вот наработки. Не соображаю, помогите. int A; int n, m, g; int a = 0;...

Создать функцию, определяющую среднее арифметическое значение элементов вектора
Добрый день, помогите исправить ошибку в программе. Создать функцию, определяющую среднее...

2
Darky
Быдлокодер
509 / 296 / 84
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
01.12.2010, 18:46 2
C
1
2
"Все функции должны получать массивы в качестве аргументов (а не использовать
массивы, объявленные в глобальной области видимости)."
=

C++
1
Надо передавать массив как аргумент от мейна. Заполнять в теле и передавать в функцию.
1
Sunman
56 / 56 / 14
Регистрация: 02.03.2010
Сообщений: 407
01.12.2010, 21:36  [ТС] 3
Переписал и получилось так:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
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");
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.12.2010, 21:36

Описать процедуру Mean, вычисляющую среднее арифметическое
3. Описать процедуру Mean(X, Y, AMean, GMean), вычисляющую среднее арифметическое AMean = (X + Y)/2...

Среднее арифметическое элементов массива
почему не работает программа: #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; #define...

Подсчитать количество элементов, превышающих среднее арифметическое элементов массива
Создать консольное приложение для решения следующей задачи: Двумерный массив, размером N*N...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru