Динамический массив через realloc - ошибка преобразования типов - C (СИ)

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

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

Здравствуйте ! я начинающий программист. подскажите пожалуйста кто может пишу в с-шном файле где забиты отдельные функции. функцию которая в массиве чисел считает сумму . среднее арифметическое , максимум и минимум и забивает их в динамический массив через realloc.
int sum(int *p, int n)
    {
        int i,s, sr, max, min, *pm, b[N];
        s=0; sr=0; max=0; min=100; 
        pm=realloc(b,N*sizeof(int));
        for (i=0;i<n;i++)
        {
            s+=*(p+i);
            max=max<*(p+i)?*(p+i):max;
            min=min>*(p+i)?*(p+i):min;
        }
        sr=s/n;
        b[0]=s; b[1]=sr; b[2]=max; b[3]=min; 
        
        printf("\n  Сумма чисел равна %d, среднее арифметическое - %d, \nмаксимальное число - %d, минимальное число  %d", b[0], b[1], b[2], b[3]);
        free(pm);
        return s;
    }
компилятор ругается в сторону realloc типа не могу преобразовать void в int. если убрать realloc и free то всё нормально, но мне надо понять именно как забить это в динамический массив.

Решение задачи: «Динамический массив через realloc - ошибка преобразования типов»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <locale.h>
#include <windows.h>
#include <time.h>
#include "mass.h"
#define color(color) {SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),color);}
 
 
 
    int main()
    {
        setlocale(0,"");
        int n, *mp;
        puts("Ââåäèòå êîëè÷åñòâî Г·ГЁГ±ГҐГ«");
        scanf("%2d",&n);
        fflush(stdin);
        int a[n];
        srand(time(0));
        massiv(a,n);
        printm(a,n);
        sum(a,n);
        getch();
    }
 
Хеддер:
#ifndef MASS_H
#define MASS_H
 
    void massiv(int*,int); 
    void printm(int*,int);
    int sum(int*,int);
#endif
 
 
с-шник с функциями
 
 
#include "mass.h"
#include <windows.h>
#include <stdio.h>
#define N 14
 
    void massiv(int *p,int n)
    {
        int i;
        for (i=0;i<n;i++)
        {
        *(p+i)=rand()%100;
        }
    }
    
    void printm(int *p, int n)
    {
        int i;
        for (i=0;i<n;i++)
        {
            printf("%  2d",*(p+i));
        }
    }
    
    int sum(int *p, int n)
    {
        int i,s, sr, max, min, *pm, b[N];
        s=0; sr=0; max=0; min=100; 
        pm=realloc(b,N*sizeof(int));
        for (i=0;i<n;i++)
        {
            s+=*(p+i);
            max=max<*(p+i)?*(p+i):max;
            min=min>*(p+i)?*(p+i):min;
        }
        sr=s/n;
        b[0]=s; b[1]=sr; b[2]=max; b[3]=min; 
        
        printf("\n  Г‘óììГ* Г·ГЁГ±ГҐГ« Г°Г*ГўГ*Г* %d, ñðåäГ*ГҐГҐ Г*ðèôìåòè÷åñêîå - %d, \nГ¬Г*ГЄГ±ГЁГ¬Г*ëüГ*îå ÷èñëî - %d, ìèГ*ГЁГ¬Г*ëüГ*îå ÷èñëî  %d", b[0], b[1], b[2], b[3]);
        free(pm);
        return s;
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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