C#: Ta bort första och sista värde ifrån en array?

Här diskuteras programmering och utveckling
Christian Holmberg
Inlägg: 194
Blev medlem: 02 nov 2006, 22:02
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS

C#: Ta bort första och sista värde ifrån en array?

Inlägg av Christian Holmberg »

Sitter och läser boken Skarp programmering med C# och kommit till övningsuppgifterna i kapitel 1 och fastnat på övning 7. Man ska helt enkelt skriva ett litet program som räknar ut poängen för simhoppstävlingar. Föst ska en svårighetsgrad matas in, sen 5 poäng mellan 0 och 10. Efter detta ska högsta och lägsta poäng tas bort. Resterande poäng läggs ihop och multipliceras med svårighetsgraden.

Nu har jag i och för sig fuskat lite och använt mig av saker som arrays och loopar som inte tagits upp i boken. Det jag behöver hjälp med är att ta bort första och sista värdet på en array av typen int.

I PHP skulle jag t.ex använda mig av funktionerna array_pop och array_shift och så skulle det hela vara avklarat.

Koden som jag än så länge skrivit finner ni här:

Kod: Markera allt

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {

            float svårighetsgrad;
            int[] poäng = new int[5];

            /* inmatning av svårighetsgrad */
            do {
                Console.Write("Ange svårighetsgrad: ");
                if ((float.TryParse(Console.ReadLine(), out svårighetsgrad)) == false) {
                    Console.WriteLine("Fel: Ange korrekt svårighetsgrad!");
                } else {
                    break;
                }
            } while (true);

            /* Inmating av poängen */
            for (int i = 0; i < 5; i++) { 
                do {
                    Console.Write("Ange Poäng från dommare #" + (i+1) + ": ");
                    if ((int.TryParse(Console.ReadLine(), out poäng[i])) == false)
                    {
                        /* Om andvändaren matar in något helt galet återuprepar vi processen tills det blir rätt */
                        Console.WriteLine("Fel: Ange korrekt poängvärde mellan 0 och 10");
                    }
                    else {
                        /* Om andvändaren matar in tal med rätt intervall så avbryts loopen*/
                        if (poäng[i] >= 0 && poäng[i] <= 10) {
                            break;
                        }
                        else {
                            /* Om andvändaren matar in tal med fel intervall återupprepar vi processen en gång till */
                            Console.WriteLine("Fel: Ange korrekt poängvärde mellan 0 och 10");
                            continue;                       
                        }   
                    }
                } while (true);
            }

            /* Sorterar poängen efter storleksordning */
            Array.Sort(poäng);

            /* Ta bort första och sista elementen*/
            
            /* Behöver en motsvarighet från PHPs array_pop och array_shift här*/


        }
    }
}
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: C#: Ta bort första och sista värde ifrån en array?

Inlägg av Konservburk »

Christian Holmberg skrev:Nu har jag i och för sig fuskat lite och använt mig av saker som arrays och loopar som inte tagits upp i boken. Det jag behöver hjälp med är att ta bort första och sista värdet på en array av typen int.

I PHP skulle jag t.ex använda mig av funktionerna array_pop och array_shift och så skulle det hela vara avklarat.
Det kanske är bäst att jag börjar med att säga att jag aldrig har skrivit så mycket som en endaste rad kod i ciss.

Måste du verkligen ta bort? Borde det inte gå lika bra att stega igenom med en loop, fast från andra till näst sista elemenet istället för från första till sista.
Andreas Larsson
Inlägg: 2
Blev medlem: 09 aug 2010, 22:01
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS
Ort: Umeå

Re: C#: Ta bort första och sista värde ifrån en array?

Inlägg av Andreas Larsson »

Kolla upp Array.Copy(...

Borde kunna kopiera den del av arrayen du vill ha kvar till en ny.
Skriv svar

Återgå till "Programmering och webbdesign"