Vinnaren i pepparkakshustävlingen!
2022-10-25, 11:03
  #1
Medlem
Hur sparar jag ett index temporärt i följande exempel? Jag vill sortera alla index i bokstavsordning men får fel på fetmarkerat.

Kod:
void sort(char* arr[], int sz)
{
	for (int i = 1; i < sz; i++)
	{
		for (int j = 0; j < sz - i; j++)
		{
			if (arr[j] > arr[j + 1])
			{
				char temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
			}
		}
	}
}
Citera
2022-10-25, 11:16
  #2
Medlem
a-mortals avatar
Citat:
Ursprungligen postat av bosscs2
Hur sparar jag ett index temporärt i följande exempel? Jag vill sortera alla index i bokstavsordning men får fel på fetmarkerat.

Kod:
void sort(char* arr[], int sz)
{
	for (int i = 1; i < sz; i++)
	{
		for (int j = 0; j < sz - i; j++)
		{
			if (arr[j] > arr[j + 1])
			{
				char temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
			}
		}
	}
}
Det ska vara char* arr eller char arr[] i parameter parentesen, annars blir det ett type- eller cast-error, can't convert char * to char.
Citera
2022-10-25, 12:01
  #3
Medlem
provar följande men den sorterar knas. Ser inte hur den avviker från bubblesort algoritmen?

Kod:
void sort(char* arr[], int sz)
{
	char* temp;
	for (int i = 0; i < sz; i++)
	{
		for (int j = 0; j < sz -i; j++)
		{
			if (arr[j] > arr[j + 1])
			{
				temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
			}
Citera
2022-10-25, 13:50
  #4
Medlem
Citat:
Ursprungligen postat av bosscs2
provar följande men den sorterar knas. Ser inte hur den avviker från bubblesort algoritmen?

Kod:
void sort(char* arr[], int sz)
{
	char* temp;
	for (int i = 0; i < sz; i++)
	{
		for (int j = 0; j < sz -i; j++)
		{
			if (arr[j] > arr[j + 1])
			{
				temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
			}

Den sorterar inte alls, du bör få någon array error.
Tänk efter noga hur dina "for" fungerar och rör sig.
Citera
2022-10-26, 11:12
  #5
Medlem
a-mortals avatar
Citat:
Ursprungligen postat av bosscs2
provar följande men den sorterar knas. Ser inte hur den avviker från bubblesort algoritmen?

Kod:
void sort(char* arr[], int sz)
{
	char* temp;
	for (int i = 0; i < sz; i++)
	{
		for (int j = 0; j < sz -i; j++)
		{
			if (arr[j] > arr[j + 1])
			{
				temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
			}
Den sorterar nu efter adresserna. Som Emphorn sa så sorterar den inte. Den skulle sortera om den yttre for-loopen istället börjar från höga värden.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in