C# :: Aufgabe #353

3 Lösungen Lösungen öffentlich

Summe einzeln vorkommender Zahlen

Anfänger - C# von JKooP - 09.02.2021 um 20:00 Uhr
Gegeben ist ein Array, welches beliebig viele Integer- Zahlen beinhaltet.
Erstelle eine Methode/Funktion, mit der man die Summe aller einzeln im Array vorkommenden Zahlen berechnen kann.

arr1 = { 1, 2, 3, 1, 2 } => Summe = 3

arr2 = { 1, 2, 3, 4, 5 } => Summe = 15

arr3 = { 1, 2, 3, 3, 2, 1 } => Summe = 0

Viel Spaß

Lösungen:

vote_ok
von hollst (13980 Punkte) - 11.02.2021 um 20:40 Uhr
Quellcode ausblenden C#-Code
using System;
using static System.Console;

WriteLine(aufgabe_353(new int[] { 1, 2, 3, 1, 2    }));
WriteLine(aufgabe_353(new int[] { 1, 2, 3, 4, 5    }));
WriteLine(aufgabe_353(new int[] { 1, 2, 3, 3, 2, 1 }));
ReadKey();

static int aufgabe_353 (int[] n)    {
    int sum = 0;
    for (var i = 0; i < n.Length; i++) {
        int counter = 0;
        for (var j = 0; j < n.Length; j++)
            if (n[i] == n[j])
                counter++;
        if (counter == 1)
            sum += n[i];
    }
    return sum;
}
vote_ok
von Waldgeist (2310 Punkte) - 13.02.2021 um 11:37 Uhr
Hallo,

hier mein Lösungsvorschlag.

Quellcode ausblenden C#-Code
using System;

namespace Aufgabe_353_Summe_aus_Array
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            Console.WriteLine("Hallo Welt!");
            Console.WriteLine("Dieses Programm ermiitelt die Summe aller einzeln im Array vorkommenden Zahlen\n\n");

            int[] array1 = { 1, 2, 3, 2, 1 };
            int[] array2 = { 1, 2, 3, 4, 5 };
            int[] array3 = { 1, 2, 3, 3, 2, 1 };

            ArrayAusgabe(array1);
            Console.WriteLine("Summe der einzeln vorkommenden Zahlen: " + BerechneSumme(array1) + "\n");
            ArrayAusgabe(array2);
            Console.WriteLine("Summe der einzeln vorkommenden Zahlen: " + BerechneSumme(array2) + "\n");
            ArrayAusgabe(array3);
            Console.WriteLine("Summe der einzeln vorkommenden Zahlen: " + BerechneSumme(array3) + "\n");
        }

        private static int BerechneSumme(int[] array)
        {
            int anzahl = array.Length;
            int summe = 0;

            for (int i = 0; i < anzahl; i++)
            {
                int j = 0;
                bool ungleich = true;
                while (j < anzahl & ungleich)
                {
                    if (j == i)
                    {
                        j++;
                        continue;
                    }

                    if (array[i] == array[j])
                    {
                        ungleich = false;
                    }
                    j++;
                }
                if (ungleich)
                {
                    summe += array[i];
                }
            }

            return summe;
        }

        private static void ArrayAusgabe(int[] array)
        {
            Console.Write("Die Zahlen im Array lauten:  ");
            foreach (var i in array)
            {
                Console.Write(i + " ");
            }
            Console.WriteLine();
        }
    }
}
vote_ok
von JKooP (18090 Punkte) - 05.03.2021 um 15:57 Uhr
NET 5.x; C# 9.x; VS-2019

Quellcode ausblenden C#-Code
using System;
using System.Linq;

var arr = new int[] { 1, 2, 3, 1, 2 };
var r =  arr.GroupBy(x => x).Select(x => new { n = x.Key, c = x.Count() }).Where(x => x.c == 1).Select(x => x.n).Sum();
Console.WriteLine($"Summe einzeln vorkommender Zahlen: {r}");