pole v cyklus psát rozhodně nebudeš, pole musí být definováno předem a přes cyklus ho jen naplníš případně potom zjistíš co je potřeba
Jedna verze může vypadat takto (psal jsem to nad c++ ale melo by to byt validni pod C)
#define MAX 10
typedef struct Cislo
{
int cislo;
bool mensiNezPrumer;
Cislo() : cislo(0) {}
Cislo(int cislo) : cislo(cislo) {}
};
void nactiCisla(Cislo* pole)
{
int i = 0;
for (; i < MAX - 1; i++) {
pole[i] = Cislo(rand() % 100);
}
pole[i] = Cislo(0);
}
void vypoctiPrumer(Cislo* cisla, int* prumer)
{
int i = 0, sum = 0;
for (; i < MAX; i++) {
sum += cisla[i].cislo;
}
*prumer = sum / MAX;
}
void zjistiMinMax(Cislo* cisla, int prumer)
{
int i = 0;
for (; i < MAX; i++) {
if (cisla[i].cislo < prumer) {
cisla[i].mensiNezPrumer = true;
} else {
cisla[i].mensiNezPrumer = false;
}
}
}
void vypis(Cislo* cisla, bool mensiNezPrumer)
{
int i = 0;
for (; i < MAX; i++) {
if (cisla[i].mensiNezPrumer == mensiNezPrumer) {
printf("%d,", cisla[i].cislo);
}
}
}
int main()
{
Cislo cisla[MAX];
int prumer;
nactiCisla(cisla);
vypoctiPrumer(cisla, &prumer);
zjistiMinMax(cisla, prumer);
vypis(cisla, true); // vypise mensi nez prumer
printf("\n");
vypis(cisla, false); // vypise vetsi nez prumer
return EXIT_SUCCESS;
}
PS: pardon, jsem přehlédl, že se jednalo pouze o počet čísel menších/větších, ale nevadí, aspon to mas i vypisem o jaka cisla se presne jednalo... jinak stačí upravit zjistiMinMax(..) na
void zjistiMinMax(Cislo* cisla, int prumer, int* vysledek)
{
int i = 0;
for (; i < MAX; i++) {
if (cisla[i].cislo < prumer) {
cisla[i].mensiNezPrumer = true;
vysledek[0]++;
} else {
cisla[i].mensiNezPrumer = false;
vysledek[1]++;
}
}
}
a potom main() bude
int main()
{
Cislo cisla[MAX];
int vysledek[2] { 0 };
int prumer;
nactiCisla(cisla);
vypoctiPrumer(cisla, &prumer);
zjistiMinMax(cisla, prumer, vysledek);
printf("Mensich: %d\nVetsich: %d", vysledek[0], vysledek[1]);
return EXIT_SUCCESS;
}
+ vymazat funkci vypis(...) (pokud ji tam nechceš)