8 svar
579 visningar
proghelp behöver inte mer hjälp
proghelp 19 – Fd. Medlem
Postad: 11 aug 2020 16:23

Radsummera matris

Hej! 

Jag har fastnat på en uppgift där man ska radsummera en matris och returnera resultatet i en vektor. 

Följande är min kod hittills: 

public static int sum(int[][] m) {
int [] rowSum = new int [m.length]; //skapar en vektor med en plats för varje rad
for (int r = 0; r < m.length; r++) { //bläddrar bland rader
for (int c = 0; c < m[r].length; c++) { //bläddrar bland kolonner
rowSum[r] += m[r][c]; //lägger in rad r på plats r i vektorn samt summerar alla "bidrag" från alla kolonner på den raden
}
}
return rowSum;
}

Jag får även felmeddelande som jag försökt att tolka men misslyckats.

Laguna 30251
Postad: 11 aug 2020 16:53

Jag tror syntaxfelen kommer från testkoden som försöker använda din kod. Din funktion förväntas returnera en vektor, men den returnerar bara en int.

Aerius 504 – Fd. Medlem
Postad: 11 aug 2020 16:57

I din funktionsdefinition står det att funktionen returnerar en int, det är fel. Du vill returnera en array av int. Java är roligt, speciellt sen när klasser kommer in i bilden. Då kan du skriva om den här funktionen med en klass vektor och se hur enkelt allt blir :)

proghelp 19 – Fd. Medlem
Postad: 11 aug 2020 17:01 Redigerad: 11 aug 2020 17:03
Laguna skrev:

Jag tror syntaxfelen kommer från testkoden som försöker använda din kod. Din funktion förväntas returnera en vektor, men den returnerar bara en int.

Jag förstår, tack för svar!

proghelp 19 – Fd. Medlem
Postad: 11 aug 2020 17:07
Aerius skrev:

I din funktionsdefinition står det att funktionen returnerar en int, det är fel. Du vill returnera en array av int. Java är roligt, speciellt sen när klasser kommer in i bilden. Då kan du skriva om den här funktionen med en klass vektor och se hur enkelt allt blir :)

Testade att ändra nu till int [] i metoden men det fungerade inte heller.

Aerius 504 – Fd. Medlem
Postad: 11 aug 2020 17:13 Redigerad: 11 aug 2020 17:16

Din metod heter rowSum, inte sum. Testa med rowSum, vad händer då?

Ser märkligt ut med en variabel i funktionen som har samma namn som funktionen. Men varför inte.

proghelp 19 – Fd. Medlem
Postad: 11 aug 2020 17:48
Aerius skrev:

Din metod heter rowSum, inte sum. Testa med rowSum, vad händer då?

Ser märkligt ut med en variabel i funktionen som har samma namn som funktionen. Men varför inte.

Jag förstår inte vad du menar att jag ska skriva istället, ska jag ändra metodnamnet eller variabelnamnet?

Metodnamnet var där sen början och ändrar jag det så får jag felmeddelandet som jag infogade senast. Hur får jag den till att den returnerar en array? Går det att göra utan att ändra metodnamnet? 

Aerius 504 – Fd. Medlem
Postad: 11 aug 2020 18:05
proghelp skrev:
Aerius skrev:

I din funktionsdefinition står det att funktionen returnerar en int, det är fel. Du vill returnera en array av int. Java är roligt, speciellt sen när klasser kommer in i bilden. Då kan du skriva om den här funktionen med en klass vektor och se hur enkelt allt blir :)

Testade att ändra nu till int [] i metoden men det fungerade inte heller.

Läste ditt startinlägg igen. Du har råkat skriva rowSum i det citerade inlägget istället för sum i funktionsdeklarationen. metodnamnet ska inte ändras. Men vad funktionen returnerar för värde ska vara rätt. Om funktionen returnerar en array ska det stå med i funktionsdeklarationen: public static returvärde funktionsnamn()

proghelp 19 – Fd. Medlem
Postad: 12 aug 2020 12:38
Aerius skrev:
proghelp skrev:
Aerius skrev:

I din funktionsdefinition står det att funktionen returnerar en int, det är fel. Du vill returnera en array av int. Java är roligt, speciellt sen när klasser kommer in i bilden. Då kan du skriva om den här funktionen med en klass vektor och se hur enkelt allt blir :)

Testade att ändra nu till int [] i metoden men det fungerade inte heller.

Läste ditt startinlägg igen. Du har råkat skriva rowSum i det citerade inlägget istället för sum i funktionsdeklarationen. metodnamnet ska inte ändras. Men vad funktionen returnerar för värde ska vara rätt. Om funktionen returnerar en array ska det stå med i funktionsdeklarationen: public static returvärde funktionsnamn()

Det fungerade nu, tack för all hjälp! 

Svara
Close