Jag har ett litet problem med min kod. Nästan allt i texten fungerar utmärkt med user input och display av säljaruppgifter. Det som krånglar är att varsin säljare inte sorteras helt rätt. Om jag skriver in två säljare och ena har sålt till nivå 4 och den andra har sålt till nivå 1 så visas båda på både ettan och fyran när dom egentligen ska vara på varsin nivå. Jag hittar inte felet så uppskattar hjälpen!
KOD:
KOD:
Kod:
public struct saljare // Skapar en construkt för säljare
{
public string namn;
public string personnummer;
public string distrikt;
public int antalartiklar;
public int niva;
}
private static void BubbleSort(saljare[] osorterad) // Array för bubblesort så att varsin säljare sorteras korrekt
{
int length = osorterad.Length;
for (int i = 0; i < length - 1; i++)
{
for (int j = 0; j < length - 1 - i; j++)
{
if (osorterad[j].antalartiklar > osorterad[j + 1].antalartiklar)
{
saljare num = osorterad[j];
osorterad[j] = osorterad[j + 1];
osorterad[j + 1] = num;
}
}
}
}
static void Main(string[] args)
{
int counter = 0; //skapar variablar till nivåerna och en counter
int nivaett = 0;
int nivatva = 0;
int nivatre = 0;
int nivafyra = 0;
Console.WriteLine("Klass för säljare och resultat: ");
Console.WriteLine("-------------------------------");
Console.Write("Antal säljare som ska registreras: ");
int num = int.Parse(Console.ReadLine());
int[] numbers = new int[num];
saljare[] saljkar = new saljare[num];
saljare[] osorterad = new saljare[num];
// låter användaren skriva in 6 personer och dess attribut
for (int i = 0; i < num; i++) // Läs in alla säljare i en array av "Säljare"
{
Console.WriteLine(" ");
Console.Write("Ange information för säljare " + (i + 1));
Console.WriteLine(" ");
Console.WriteLine(" ");
Console.Write("Ange Namn: ");
saljkar[i].namn = Console.ReadLine();
Console.Write("Ange Personnummer: ");
saljkar[i].personnummer = Console.ReadLine();
Console.Write("Ange Distrikt: ");
saljkar[i].distrikt = Console.ReadLine();
Console.Write("Ange antal Artiklar: ");
saljkar[i].antalartiklar = int.Parse(Console.ReadLine());
Console.WriteLine(" ");
// lägger till i varje nivå
if (saljkar[i].antalartiklar < 50)
{
saljkar[counter].niva = 1;
nivaett++;
}
if (saljkar[i].antalartiklar >= 50 && saljkar[i].antalartiklar < 100)
{
saljkar[counter].niva = 2;
nivatva++;
}
if (saljkar[i].antalartiklar >= 100 && saljkar[i].antalartiklar < 200)
{
saljkar[counter].niva = 3;
nivatre++;
}
if (saljkar[i].antalartiklar > 200)
{
saljkar[counter].niva = 4;
nivafyra++;
}
}
BubbleSort(saljkar); // sorterar arrayen "säljkår"
Console.WriteLine("------------------------");
Console.WriteLine("Antal Säljare på nivå 1: " + nivaett);
Console.WriteLine(" ");
if (nivaett > 0)
{
for (int i = 0; i < saljkar.Length; i++)
{
Console.WriteLine("Namn: " + saljkar[i].namn);
Console.WriteLine("Personnummer: " + saljkar[i].personnummer);
Console.WriteLine("Distrikt: " + saljkar[i].distrikt);
Console.WriteLine("Antal sälj: " + saljkar[i].antalartiklar);
Console.WriteLine("Sälj nivå: " + saljkar[i].niva);
Console.WriteLine("-----------------------------");
}
}
Console.WriteLine("Antal Säljare på nivå 2: " + nivatva);
Console.WriteLine(" ");
if (nivatva > 0)
{
for (int i = 0; i < saljkar.Length; i++)
{
Console.WriteLine("Namn: " + saljkar[i].namn);
Console.WriteLine("Personnummer: " + saljkar[i].personnummer);
Console.WriteLine("Distrikt: " + saljkar[i].distrikt);
Console.WriteLine("Antal sälj: " + saljkar[i].antalartiklar);
Console.WriteLine("Sälj nivå: " + saljkar[i].niva);
Console.WriteLine("-----------------------------");
}
}
Console.WriteLine("Antal Säljare på nivå 3: " + nivatre);
Console.WriteLine(" ");
if (nivatre > 0)
{
for (int i = 0; i < saljkar.Length; i++)
{
Console.WriteLine("Namn: " + saljkar[i].namn);
Console.WriteLine("Personnummer: " + saljkar[i].personnummer);
Console.WriteLine("Distrikt: " + saljkar[i].distrikt);
Console.WriteLine("Antal sälj: " + saljkar[i].antalartiklar);
Console.WriteLine("Sälj nivå: " + saljkar[i].niva);
Console.WriteLine("-----------------------------");
}
}
Console.WriteLine("Antal Säljare på nivå 4: " + nivafyra);
Console.WriteLine(" ");
if (nivafyra > 0)
{
for (int i = 0; i < saljkar.Length; i++)
{
Console.WriteLine("Namn: " + saljkar[i].namn);
Console.WriteLine("Personnummer: " + saljkar[i].personnummer);
Console.WriteLine("Distrikt: " + saljkar[i].distrikt);
Console.WriteLine("Antal sälj: " + saljkar[i].antalartiklar);
Console.WriteLine("Sälj nivå: " + saljkar[i].niva);
Console.WriteLine("-----------------------------");
}
}
// skriver ut uppnådda nivåer och antal sålda artiklar
Console.ReadLine();
}
__________________
Senast redigerad av Proton 2022-10-15 kl. 17:58.
Senast redigerad av Proton 2022-10-15 kl. 17:58.