Citat:
Ursprungligen inskrivet av
Liftaren
Utveckla gärna varför static inte är lämpligt.
Static är inte lämpligt för att få dess sekundära funktionalitet. Det som static gör (när nyckelordet används framför en lokal variabel inuti en funktion) är att tvinga kvar den variabeln i minnet så länge programmet kör. Detta är inte bra om man inte faktiskt vill detta, och kan skapa otrevliga buggar / minnesläckor.
Dock tycker jag hela koden i sig är knasig, varför skall du konvertera denna? Känns som det är skrivet av en person som verkligen inte har koll, lite noteringar:
Ingen initialisering av indexvariabel, går visserligen att använda, men konstig praxis. Dvs inget "int xx = yy" utan bara "xx=yy".
Fel ordning på slutvillkor och uppdatering av variabel (det som perost påpekade).
Om det faktiskt varit korrekt skulle den itererat över 20-1 istället för 19-0, vilket i sig fungerar bättre med hur loopkroppen ser ut, men är konstigt i vilket fall.
varden_2[i]=varden_2[i-1];
varden_1[i]=varden_1[i-1];
medel_2=medel_2 + varden_2[i];
medel_1=medel_1 + varden_1[i];
Detta är intressant. Det som händer är ju att alla tal flyttas upp ett steg i vektorn, och sedan adderas till "medeltalet". Dvs 0-1-2-3 skulle ge 0-0-1-2 samt icke-delat medeltal 3.
Är du säker på medeltalsberäkning är vad kodbiten är menad att göra? Inte ens en nybörjare skulle väl komma på idén att skriva dessa omvägar för att göra något så simpelt som att beräkna medeltalet i två vektorer?