Переделать программу, чтобы функции возвращали значения - C (СИ)
Формулировка задачи:
Проект мультифайловый, помогите пожайлуста. Функции должны возвращать не printf,а значения
average.c
generate.c
main.c
people.h
#include "people.h" void average(const People x[],const int size) { int sum=0,k=0; int i; for (i=0;i<size;i++) { if (!(x[i].pol)) /* если мужик */ { sum+=x[i].rost; /* суммируем рост */ k++; /* считаем количество мужиков */ } } printf("The average height men: %d\n",(sum/k)); /* вывод среднего */ }
#include "people.h" void generate(People x[],const int size) { int i; srand(time(NULL)); for (i=0;i<size;i++) /* рандомно заполняем пол и рост */ { x[i].rost = 160+rand()%25; /* рандомный более-менее нормальный рост */ x[i].pol = rand()%2; printf("#%3d Height: %hu | Gender: %10s\n",i+1,x[i].rost,x[i].pol ? "Woman" : "Man"); } }
#include "people.h" void (*select[])()={generate,average}; /* массив указателей на функции */ int main(void) { People p[ALL]; /* массив структур с человеками */ (*select[0])(p,ALL); /*вызов 0 функции из массива указателей т.е. generate(p,ALL); */ (*select[1])(p,ALL); /*вызов 1 функции из массива указателей т.е. average(p,ALL); */ return 0; }
#ifndef PEOPLE_H #define PEOPLE_H #define ALL 22 #include <stdio.h> #include <stdlib.h> #include <time.h> typedef struct /* структура на человека */ { unsigned short pol; unsigned short rost; }People; void average(const People x[],const int size); /* прототипы функций */ void generate(People x[],const int size); #endif
Решение задачи: «Переделать программу, чтобы функции возвращали значения»
textual
Листинг программы
#include "people.h" #define ALL 22 int main(void) { int i=0,ykaz; People p[ALL]; /* массив структур с человеками */ int (*Aver) (const, int); Aver=average; ykaz=(*Aver) (p,ALL); generate(p,ALL); /*вызов 0 функции из массива указателей т.е. generate(p,ALL); */ for(i=0;i<ALL;i++) printf("#%3d Height: %7hu | Gender: %10s\n",i+1,p[i].rost,p[i].pol ? "Woman" : "Man"); printf("The average height men: %d\n",ykaz); /* вывод среднего */ return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д