Динамический массив через realloc - ошибка преобразования типов - C (СИ)
Формулировка задачи:
Здравствуйте !
я начинающий программист. подскажите пожалуйста кто может
пишу в с-шном файле где забиты отдельные функции.
функцию которая в массиве чисел считает сумму . среднее арифметическое , максимум и минимум и забивает их в динамический массив через realloc.
компилятор ругается в сторону realloc типа не могу преобразовать void в int. если убрать realloc и free то всё нормально, но мне надо понять именно как забить это в динамический массив.
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 - ошибка преобразования типов»
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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д