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

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback