2021-11-26, 22:11
  #1
Medlem
Har en fundering kring max/min value. Kan man p ett enkelt stt, efter att ha deklarerat x antal variabler av datatyp int, double etc hitta max vrdet samt min vrde? Max och min vrde ska plockas bort fr att sedan rkna medelvrdet, arrays r inte tilltet

EDIT: det vore hrligt med en lsning typ double max_value = MAX_VALUE(num1,num2,num3,num4)...
programmet plockar nio input av typen double, nu har jag kodat 18 rader med upprepad kod
cout <<
cin >>
etc.
Finns det ngot bttre stt?
__________________
Senast redigerad av bosscs2 2021-11-26 kl. 22:25.
Citera
2021-11-26, 22:18
  #2
Medlem
Trollfeeders avatar
Citat:
Ursprungligen postat av bosscs2
Har en fundering kring max/min value. Kan man p ett enkelt stt, efter att ha deklarerat x antal variabler av datatyp int, double etc hitta max vrdet samt min vrde? Max och min vrde ska plockas bort fr att sedan rkna medelvrdet, arrays r inte tilltet

EDIT: det vore hrligt med en lsning typ double max_value = MAX_VALUE(num1,num2,num3,num4).

Varfr vill du inte anvnda en array?
Citera
2021-11-26, 22:26
  #3
Medlem
Det r en skoluppgift, man fr inte... fullkomligt obegripligt
Citera
2021-11-26, 22:35
  #4
Medlem
Haru ens googlat "c++ max" ?

Isfall kan du bara d skriva rligt att du inte frstr resultaten (det r inte helt ltt - frsta delen av de flesta c++ docs r ju att visa hur funktioner r uppbyggda - vilket d inte hjlper s mycket med att frst hur man ska anropa dom. Men om man scrollar lngre ned hittar man ofta exempelkod p faktiska anvndnings-exempel)
Citera
2021-11-26, 22:44
  #5
Medlem
Citat:
Ursprungligen postat av bosscs2
Har en fundering kring max/min value. Kan man p ett enkelt stt, efter att ha deklarerat x antal variabler av datatyp int, double etc hitta max vrdet samt min vrde? Max och min vrde ska plockas bort fr att sedan rkna medelvrdet, arrays r inte tilltet

EDIT: det vore hrligt med en lsning typ double max_value = MAX_VALUE(num1,num2,num3,num4)...
programmet plockar nio input av typen double, nu har jag kodat 18 rader med upprepad kod
cout <<
cin >>
etc.
Finns det ngot bttre stt?

Du kan utnyttja identiteten att max(a,b,c) = max(a,max(b,c))
Citera
2021-11-26, 23:21
  #6
Medlem
Du kan deklarera ett par variabler max och min som du initierar det det minsta respektive strsta mjliga vrde som datatypen kan ha, sedan testa dina inlsta vrden i stil med "if tal>max max=tal if tal<min min=tal" och s vidare. Du kan ocks initiera sum till noll och addera dina tal till den efter hand. Slutligen med en rknare i=-2 som du kar p med ett fr varje tal du lser in s har du ditt medelvrde=(sum-max-min)/i.
Citera
2021-11-26, 23:34
  #7
Medlem
Det r vl meningen att du ska skriva energin funktion.

Det r ju rtt ltt, bara att loppa genom alla tal och behlla strsta resp minsta. Nr du r klar har du Max och min.
Citera
2021-11-26, 23:44
  #8
Medlem
Gr det att utveckla svaren?

if(num1 < num2 || num1 < num3 || etc kan inte vara en bra lsning men den enda jag frstr fr tillfllet. Det r rekommenderat att gra en egen funktion enligt uppgift.
Citera
2021-11-26, 23:44
  #9
Medlem
Citat:
Ursprungligen postat av killing.fields
Det r vl meningen att du ska skriva energin funktion.

Det r ju rtt ltt, bara att loppa genom alla tal och behlla strsta resp minsta. Nr du r klar har du Max och min.

Ja exakt, ngot sdant jag sker
Citera
2021-11-26, 23:58
  #10
Medlem
Citat:
Ursprungligen postat av bosscs2
Ja exakt, ngot sdant jag sker

Den skriver du sjlv.

Min = funtction(min){

If(is.na(HistMin) HistMin = min) else(HistMin > min) HistMin = min

Return HistMin
}

Typ s, sen bara kra alla tal du vill test genom funktionen.
Citera
2021-11-27, 20:25
  #11
Medlem
Goto10s avatar
Citat:
Ursprungligen postat av bosscs2
Har en fundering kring max/min value. Kan man p ett enkelt stt, efter att ha deklarerat x antal variabler av datatyp int, double etc hitta max vrdet samt min vrde? Max och min vrde ska plockas bort fr att sedan rkna medelvrdet, arrays r inte tilltet

EDIT: det vore hrligt med en lsning typ double max_value = MAX_VALUE(num1,num2,num3,num4)...
programmet plockar nio input av typen double, nu har jag kodat 18 rader med upprepad kod
cout <<
cin >>
etc.
Finns det ngot bttre stt?
Om det r anvndaren som ska mata in talen (9 st) skriver du en loop. Tv variabler anvnds fr att hlla reda p min och max och en variabel fr att hlla reda p summan. Nr alla tal summerats drar du bort min och max frn summan och sedan dividerar du med 7 (totalt 9 men tv har tagits bort s 7 kvar).
Kod:
#include <iostream>
#include <limits>

int main() {
  constexpr int antalTal = 9;
  double min = std::numeric_limits<double>::max();
  double max = std::numeric_limits<double>::min();
  double sum = 0.0;
  for (int i = 0; i < antalTal; i++) {
    std::cout << "Skriv in tal " << i+1 << ": ";
    double num;
    std::cin >> num;
    sum += num;
    if (num > max) {
      max = num;
    }
    if (num < min) {
      min = num;
    }
  }
  sum -= min;
  sum -= max;
  std::cout << "Medelvrdet d min och max tagits bort r: " << sum / (antalTal - 2) << std::endl;
}
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in