Anropning av metod.
Hejsan!
Jag håller på med en uppgift som säger att jag ska göra en metod som deklarerar 5 osoterade värden i en fältvariabel och jag ska anropa en annan metod som ska sotera den. När jag anropar metoden "Sotera(double vektor[])" så vägrar kompilatorn att köra.
Ps: Jag är väldigt ny till programmering.
Koden ser ut såhär
static void testa_sotera(){ // Metoden som ska deklarera de osoterade värderna.
int vektor[] = {3, 5, 7, 2, 6}; // Deklarerar 5 osoterade värden i en fältvariabel.
Sortera(double vektor[]); // Kompilatorn vägrar anropa metoden som ska sotera.
}
}
Och för er som är nyfikna så är koden till den andra metoden här:
static void Sortera(double vektor[])
{
int sistaIndex = vektor.length - 1;
for (int i = 0; i < sistaIndex; i++)
{
int minIndex = i;
for (int j = i + 1; j <= sistaIndex; j++)
{
if (vektor[j] < vektor[minIndex])
{
minIndex = j;
}
}
if (minIndex > i)
{
double temp = vektor[i];
vektor[i] = vektor[minIndex];
vektor[minIndex] = temp;
}
}
}
Mvh Mohamed Mohamoud
Sortera(double vektor[]);
Det här är fel. Om du vill anropa metoden 'Sortera' med arrayen 'vektor' ska du skriva:
Sortera(vektor);
Det kommer dock inte heller att funka direkt eftersom 'vektor' är en array av typ int medans 'Sortera' behöver en array av typ double. Antingen kan du ändra variabeln 'vektor' till att vara en double-array eller så ändrar du argumentet för 'Sortera' så att den tar en int-array.
Jag tror jag fattade vad du menade, jag ändrade koden såhär. Är det här du menade? För att kompilatorn accepterar detta.
static void testa_sotera(){
double vektor[] = {3.0, 5.0, 7.0, 2.0, 6.0};
Sortera(vektor);
}
}
Japp, det var precis så jag menade. Funkar det när du kör programmet?
Ja den fungerade, jag ska skriva klart koden. Tack så otroligt mycket!