Avatar billede snailwalker Nybegynder
02. juni 2005 - 01:05 Der er 10 kommentarer og
1 løsning

Sortering af 5 int's

Hej eksperter!

Jeg har et array med 5 integers som jeg gerne vil have sorteret så den mindste er først og den største er sidst. Men min hjerne er lidt sløv i øjeblikket, er der en hurtig måde at gøre det på?

Har et kodeeksempel men det er sortering af strings og det er ret langhåret :S

På forhånd tak :)
Avatar billede bertelbrander Novice
02. juni 2005 - 01:07 #1
C eller C++ ?
Avatar billede snailwalker Nybegynder
02. juni 2005 - 01:09 #2
C++, undskyld skulle jeg lige have skrevet :)
Avatar billede bertelbrander Novice
02. juni 2005 - 01:09 #3
C++:
#include <algorithm>
#include <iostream>

int main()
{
  int x[5] = {9, 5, 11, 7, 1};
  std::sort(x, &x[5]);
  int i;
  for(i = 0; i < 5; i++)
      std::cout << x[i] << std::endl;
}
Avatar billede bertelbrander Novice
02. juni 2005 - 01:13 #4
Eller C:
#include <stdlib.h>
#include <stdio.h>

int SortFunc(const void *p1, const void *p2)
{
  const int *i1 = (int *)p1;
  const int *i2 = (int *)p2;
  return *i1 - *i2;
}

int main()
{
  int x[5] = {9, 5, 11, 7, 1}, i;
  qsort(x, 5, sizeof(int), SortFunc);
  for(i = 0; i < 5; i++)
      printf("%d\n", x[i]);
  return 0;
}
Avatar billede snailwalker Nybegynder
02. juni 2005 - 01:14 #5
findes der en funktion der kan det :O

Snyd :D

Nåh men tak for hjælpen, smid lige et svar så du kan få points :)
Avatar billede bertelbrander Novice
02. juni 2005 - 01:15 #6
Jeg samler ikke på point.
Avatar billede snailwalker Nybegynder
02. juni 2005 - 01:17 #7
Okay, men mange gange tak for hjælpen alligevel :)
Avatar billede snailwalker Nybegynder
02. juni 2005 - 19:12 #8
Hvis jeg hurtigt kan spørge dig igen, men hvordan ændrer jeg rækkefølgen på mit sorterede array, tror godt jeg vil have det omvendt i stedet for så den starter med det største tal?
Avatar billede bertelbrander Novice
02. juni 2005 - 20:17 #9
#include <algorithm>
#include <iostream>

class CompareClass
{
public:
  bool operator () (const int &lhs, const int &rhs)
  {
      return lhs > rhs;
  }
};

int main()
{
  int x[5] = {9, 5, 11, 7, 1};
  CompareClass Compare;
  std::sort(x, &x[5], Compare);
  int i;
  for(i = 0; i < 5; i++)
      std::cout << x[i] << std::endl;
}
Avatar billede snailwalker Nybegynder
02. juni 2005 - 20:49 #10
okay tusind tak for hjælpen :-)
Avatar billede bertelbrander Novice
04. juni 2005 - 00:28 #11
Jeg kom til at tænke på om ikke der fandtes en standard metode, det gør der:

#include <algorithm>
#include <functional>
#include <iostream>

int main()
{
  int x[5] = {9, 5, 11, 7, 1};
  std::greater<int> Compare;
  std::sort(x, &x[5], Compare);
  int i;
  for(i = 0; i < 5; i++)
      std::cout << x[i] << std::endl;
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



Seneste spørgsmål Seneste aktivitet
I dag 15:08 Http client med X509Certificate2 Af joki i C#
I dag 13:02 Hjemmenetværk Af Andfer i LAN/WAN
I dag 11:17 Chrombook Af lurup i Andre styresystemer
I går 15:20 Core i5-7200 processor Af Wombat i Windows
I går 15:07 Hjælp med HTML og CSS Af Nojsa i HTML