Ich akzeptiere eine Nummer vom Benutzer, genannt originally_entered_number_inString
, die n
Ziffern lang ist. Wenn diese Zahl positiv ist, wird diese Zahl in aufsteigender Reihenfolge ausgegeben. Wenn negativ, absteigend. Ich habe den positiven Teil für mich, aber der negative Teil ist wo ich stecke - es zeigt die negative Zahl in absteigender Reihenfolge, aber mit einem -1 daneben.C# - Probleme beim Drucken Array in absteigender Reihenfolge
Beispiel: Der Benutzer gibt 654568
ein. Also gibt es 6 Ziffern in dieser Zahl und positiv, also aufsteigend - Ergebnis: 455668
. Aber wenn ich -584669
gebe, gibt es 986654-1
aus Wenn Sie sehen, ist das Ergebnis gültig, nur dass es einen Wert des Bindestrichs (- (minus)) als -1
oder etwas nimmt. Kannst du mir bitte helfen?
Hier ist der Code:
using System;
using System.Linq;
namespace nkhl
{
public class Program1
{
public static void Main(string[] args)
{
Console.WriteLine("Enter the number: ");
string originally_entered_number_inString = Console.ReadLine();
int entered_number_inInt = Convert.ToInt32(originally_entered_number_inString);
Console.WriteLine("\nThe number you entered is {0}.", entered_number_inInt);
//Counting the number of digits in the entered number:
int n = originally_entered_number_inString.ToString().Count();
//entered_number_inInt is added to the array called array_of_the_numbers
int[] array_of_the_numbers = entered_number_inInt.ToString().Select(o=> (int)char.GetNumericValue(o)).ToArray();
if(originally_entered_number_inString.Contains("-"))
{
Console.WriteLine("\nThis is a negative number, so it will print the given number in Descending order.");
Array.Sort(array_of_the_numbers);
Array.Reverse(array_of_the_numbers);
Console.WriteLine("\nThe entered number has {0} digits.", n-1); //n-1 becuase it takes the minus (-) also as a character so it reads 4.
Console.WriteLine("\n{0}, in descending order is", entered_number_inInt);
foreach(var i in array_of_the_numbers)
{
Console.Write(i);
}
}
else
{
Console.WriteLine("\nThe entered number has {0} digits.", n);
Console.WriteLine("{0}, in ascending order is", entered_number_inInt);
Array.Sort(array_of_the_numbers);
foreach(var i in array_of_the_numbers) Console.Write(i);
}
}
}
}
Auch er das Minus als Ziffer zählt.
Vielen Dank im Voraus.
OR, könnten Sie die Zeichenfolge in eine Zahl abbiegen, sehen, ob seine kleiner als Null ist, und nehmen Sie sein absoluter Wert – Amy
@Amy _i_ ist 'int'. Was ich tun muss, ist, konvertieren Sie die endgültige Ausgabe in String und TrimEnd den letzten Teil. –
Arbeitete wie erwartet. Vielen Dank. –