עבור לתוכן

מיון בועות ב-C שארפ

Featured Replies

פורסם

אני רוצה ליצור תוכנית שקולטת עשרה מספרים ומסדרת אותם מהקטן לגדול.

כתבתי תוכנית אבל אני מקבל שגיאה ואני לא יודע איך לדבג אותה:



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


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

//define array
int[] numbers = new int[5];


int temp = 0;
int count = 0;


//read numbers into array
Console.WriteLine("Enter 10 Numbers: ");
for (int i = 0; i < 5; i++)
{
int num = int.Parse(Console.ReadLine());
numbers[i] = num;
}


//while (count < 5)
//{
for (int i = 0; i < 5; i++)
{
if (numbers[i] > numbers[i + 1])
{
temp = numbers[i];
numbers[i] = numbers[i + 1];
numbers[i + 1] = temp;
}
}


// count++;
//}


//print all numbers in ascending order
for (int i = 0; i < 5; i++)
{
Console.WriteLine(numbers[i]);
}


Console.ReadLine();
}
}
}

פורסם

1) יעזור אם תרשום מה השגיאה שאתה מקבל.

2) מיון בועות אמור להיראות כמו לולאה בתוך לולאה. הלולאה החיצונית שלך נמצאת בהערה. תוריד את ההערה, ותחשוב איך לשנות אותה ואת הלולאה הפנימית שלך כדי שיתקיים מיון בועות. תתחיל מזה שתבין איך מיון בועות עובד ותבין מה קורה בכל איטרציה של הלולאה החיצונית.

פורסם
  • מחבר

אוקיי אני יבדוק אבל איך אני מפעיל את האופציה של לראות כמה כל ערך מקבל בכל איטרציה ?

פורסם

"מפעיל את האופציה"?

פשוט תדפיס את הערכים שאתה רוצה להדפיס.

פורסם
  • מחבר

משום מה יש לי מספר חסר בתוצאה ונכנס במקומו המספר 0, אני לא מצליח למצוא את הבאג.



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


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


//define array
int[] numbers = new int[200];


int temp = 0;

//define how many numbers will follow
Console.Write("Enter Numbers Of Numbers For Sorting: ");


//array numbers to read
int NumberCount = int.Parse(Console.ReadLine());


//read numbers into array
for (int i = 0; i < NumberCount; i++)
{
int num = int.Parse(Console.ReadLine());
numbers[i] = num;
}
for (int i = 0; i < NumberCount; i++)
{
if (numbers[i] > numbers[i+1])
{
temp = numbers[i];
numbers[i] = numbers[i+1];
numbers[i+1] = temp;
}
}


//print all numbers in ascending order
Console.WriteLine("Bubble Sort Results: ");
for (int i = 0; i < NumberCount; i++)
{
Console.WriteLine(numbers[i]);
}


Console.ReadLine();
}
}
}

פורסם
  • מחבר

אני לא מול המחשב עם הקוד ואין לי פה סביבת פיתוח אבל יכול להיות שזה צריך להיות for (int i = 0; i < NumberCount+1; i++) במקום for (int i = 0; i < NumberCount; i++) ?

פורסם
  • מחבר

אני מנסה להבין ולא מצליח למה פחות 1

פורסם

נניח שיש לך 100 איברים במערך. כלומר, הם נמצאים במקומות 0 עד 99.

כל פעם אתה מחליף בין האיבר ה-i לאיבר ה-i+1. כלומר, באיטרציה ה-50 אתה מחליף בין האיבר ה-50 ל-51.

במקרה שלך, אתה ממשיך עד i=99 - ובשלב הזה אתה מחליף בין האיבר ה-99 לאיבר ה-100, שהוא לא חלק מהרשימה שלך.

(הערה: אם מראש היית בונה את המערך כך שגודלו שווה ל-NumerCount, הטעות הייתה מתבטאת בשגיאה של חריגה מגבולות המערך, והיה קל יותר להבין מה היא)

פורסם
  • מחבר

איך מראש הכי טוב היה לבנות את המערך כך שגודלו שווה ל-NumerCount ?

פורסם

כשאתה יוצר מערך, מה אומר המספר שבתוך הסוגריים המרובעים?

פורסם
  • מחבר

כן שכחתי,

אני יכול לכתוב בתוך הסוגריים המרובעים את הערך NumerCount ?

פורסם
  • מחבר

ברור לי

הרבה תודה לך.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים