Du får helt enkelt kolla om antal är udda eller jämnt, och sedan ha olika beräkningar baserat på svaret.
Frågan#1
Har ett program där man matar in 5 tal och beräknar medianen, största tal etc. Nu vill jag göra så att man kan mata in ett valfritt antal tal och sen avsluta inmatningen med t.ex. ett minustecken genom att lägga till ex.
while (temp >= 0)
{
tal[antal++] = temp;
cin >> temp;
}
Hur ska jag göra för att beräkningarna ska stämma, tänker då speciellt på medianen (blir ju olika om det är ett jämnt antal tal eller ett ojämnt antal tal)?
#include <iostream>
using namespace std;
void infSort(double data[], int antal);
int main()
{
double summa = 0;
const int ANTAL = 5;
double tal[ANTAL];
cout << "Mata in fem tal: ";
for (int i = 0; i < ANTAL; i++)
{
cin >> tal[i];
summa += tal[i];
}
infSort(tal, ANTAL);
cout << "Medelv\x86rde: " << (double)summa/ANTAL << endl;
cout << "Median: " << tal[ANTAL/2] << endl;
cout << "St\x94rsta v\x86rde: " << tal[ANTAL-1] << endl;
cout << "Minsta v\x86rde: " << tal[0] << endl;
return 0;
}
void infSort(double data[], int antal)
{
for (int m = 1; m < antal; m++)
{
int pos = m;
int temp = data[m];
while (pos > 0 && data8pos-1] > temp)
{
data[pos] = data[pos-1];
position--;
}
data[pos] = temp;
}
}