Не вычисляется среднее арифметическое элемнтов массива - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Скажите, что не так в моем коде?
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
 
   void aver(int tab[], int n);
   void  aver(int tab[],int n){
      int suma=0;
         for(int i=0;i<n;i++){
               suma=suma+tab[i];
         }
         float aver=(float)suma/n;
         printf("Aver=%d \n",aver);
   }
 
   void random(int tab[], int n);
   void  random(int tab[],int n){
      float element;
         for(int i=0;i<n;i++){
            element=rand()%9;
            tab[i]=element;
            printf("%d ",tab[i]);
         }
   }
 
int main(){
      srand(time(NULL));
      int N;
      printf("N=");
      scanf("%d",&N);
      int*tab=(int*)malloc(sizeof(int)*N);
      random(tab,N);
      aver(tab,N);
 
return 0;
}
Заранее спасибо!

Решение задачи: «Не вычисляется среднее арифметическое элемнтов массива»

textual
Листинг программы
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
 
 
   void  aver(int tab[],int n){
         int suma=0;
         for(int i=0;i<n;i++){
               suma=suma+tab[i];
         }
         float aver=(float)suma/n;
         printf("Aver=%lf \n",aver);
   }
 
 
   void  myrandom(int tab[],int n){
         float element;
         for(int i=0;i<n;i++){
            element=rand()%9;
            tab[i]=element;
            printf("%d ",tab[i]);
         }
   }
 
int main(void){
      srand(time(NULL));
      int N=10;
      int*tab=(int*)malloc(sizeof(int)*N);
      myrandom(tab,N);
      aver(tab,N);
 
      return 0;
}

Объяснение кода листинга программы

В этом коде есть две функции: aver и myrandom. Функция aver принимает два аргумента: массив целых чисел и его размер. Внутри функции происходит инициализация переменной suma, которая будет хранить сумму всех элементов массива. Затем с помощью цикла for происходит проход по всем элементам массива, и каждый элемент прибавляется к переменной suma. После этого переменной aver присваивается значение суммы, разделённой на размер массива. В конце функции выводится на экран значение переменной aver. Функция myrandom принимает два аргумента: массив целых чисел и его размер. Внутри функции происходит инициализация переменной element, которая будет хранить случайно сгенерированное число от 0 до 9. Затем с помощью цикла for происходит проход по всем элементам массива, и каждый элемент присваивается значение переменной element и выводится на экран. В функции main создаётся массив N, инициализированный случайными числами с помощью функции myrandom. Затем вызывается функция aver для вычисления среднего арифметического элементов массива. В конце программы возвращается 0, что означает успешное выполнение.

Оцени полезность:

6   голосов , оценка 4 из 5
Похожие ответы