C# :: Aufgabe #387 :: Lösung #1
3 Lösungen
#387
Zweitgrößte Ziffer eines alphanumerischen Textes
Anfänger - C#
von JKooP
- 18.04.2021 um 11:04 Uhr
Gegeben ist ein alphanumerischer Text (String) der nur Kleinbuchstaben und die positiven Ziffern 0-9 enthält.
Ziel soll es sein, die zweitgrößte Ziffer (nicht Index) des Textes zu ermitteln.
Ist kein zweitgrößter Wert enthalten, soll als Ergebnis -1 ausgegeben werden.
Beispiele:
t = "abc12321efg"
Lösung: 2 => [1, 2, 3]
t = "abc111def"
Lösung: -1 => [1] Kein zweiter Wert vorhanden!
Erstelle eine Methode/Funktion, die obige Aufgabenstellung umsetzt.
Viel Spaß
Ziel soll es sein, die zweitgrößte Ziffer (nicht Index) des Textes zu ermitteln.
Ist kein zweitgrößter Wert enthalten, soll als Ergebnis -1 ausgegeben werden.
Beispiele:
t = "abc12321efg"
Lösung: 2 => [1, 2, 3]
t = "abc111def"
Lösung: -1 => [1] Kein zweiter Wert vorhanden!
Erstelle eine Methode/Funktion, die obige Aufgabenstellung umsetzt.
Viel Spaß
#1
von dson (640 Punkte)
- 22.04.2021 um 09:01 Uhr
using System;
using System.Linq;
using System.Collections.Generic;
namespace zweitgroeste_nummer_aus_zahl_text_string
{
class Program
{
static void Main(string[] args)
{
string t = "abc5555555efg";
//Hier wird der String in einzelne char aufgeteilt und in eine Liste geschrieben
List<char> stringinchar = t.ToList<char>();
//Mittels dieser Liste werden später die chars in eine Integer Liste geschrieben
List<int> zahlen = new List<int>();
//Handel es sich bei den Chars in stringinchar um eine zahl zwischen 0 und 9 so wird diese in einen string und dann in einen Integer konvertiert (ansonsten wird der ASCII Code der Zahl ausgegeben.)
foreach (var item in stringinchar)
{
if (item.Equals('0') || item.Equals('1') || item.Equals('2') || item.Equals('3') || item.Equals('4') || item.Equals('5') || item.Equals('6') || item.Equals('7') || item.Equals('8') || item.Equals('9'))
{
zahlen.Add(Convert.ToInt32(item.ToString())); //Das ToString nach dem item Hilft die Zahl auch als jene die benötigt wird weiter zu geben. Ansonsten wird statt 1, 49 ausgegeben (ASCII Code).
}
}
//Nun werden die Zahl der größe nach Sortiert
zahlen.Sort();
int zahl1 = zahlen.Last(); //zahl1 erhält den letzten und somit den höchsten wert aus der Liste
int zahl2 = 0;
//Jetzt wird Herausgefunden welche die Zweithöchste Zahl ist und dann in die Variable zahl2 geschrieben
foreach (var item in zahlen)
{
if (item >= zahl2 && item < zahl1)
{
zahl2 = item;
}
}
//Gibt die Zahl 2 "0" zurück so sind alle zahlen in der Liste gleich.
if (zahl2 == 0)
{
Console.WriteLine("Kein Zweiter Wert vorhanden, somit ist die einzige Zahl: {0}", zahlen.Last());
}
else //gibt den zweithöchsten wert aus.
{
Console.WriteLine("Der zweithöchste Wert ist: {0}",zahl2);
}
}
}
}
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
