7 svar
218 visningar
Kaptenstein behöver inte mer hjälp
Kaptenstein 14
Postad: 26 dec 2021 19:10

Hjälp med Sortering

Hej som titeln lyder så behöver jag hjälp med att få till sorteringen via bubblesort i mitt program.

Användaren ska skriva in temperatur för 4 olika städer som sedan ska sorteras i kallast först ordning.

Sen ska användaren även kunna göra en sökning på en viss temperatur och få fram antigen att den ligger på index [3] eller att den inte finns med i listan.. kanske lite luddig förklaring men hoppas ni kan förstå änåd.

vet att jag inte har callat funktionerna Bubblesort och linearsearch ännu men de är för att när jag testat så har det inte funkar.

Kan någon försöka hjälpa mig med detta?

 

#include <iostream>
#include <string>
#include <vector>
using namespace std;

class StadTemp{
public:
string name = "London";
int temp = 5;

void jagBor(){
cout << "Jag bor i " << name << " och vi har " << temp << " plusgrader just nu!" << endl;
}
};

void storStader(string stader [], int temperatur [], int n){

int tempo;
for (int i = 0; i < n; i++){
cout << "Mata in temperatur för " << stader[i] << ": ";
cin >> tempo;
temperatur[i] = tempo;
}
}


int linearsearch(StadTemp s[], int n, int a)
{
for(int i = 0; i < n; i++)

{
if(s[i].temp == a)
return i;
}
{
return -1;
};

void bubblesort(StadTemp s[], int n);

for(int i = 0; i < n; i++)
{
int nrLeft = n - i;
for(int j = 0; j < nrLeft; j++)
{
if (s[j].temp > s[j+1].temp)
{
StadTemp temp = s[j];
s[j] = s[j+1];
s[j+1] = temp;
}
}
}
}

 

int main()
{
string stader[4] = {"Berlin", "Tokyo", "Stockholm", "Peking"};
int temperatur[4];
int n;


StadTemp gata;
gata.jagBor();
storStader(stader, temperatur, 4);

for (int i = 0; i < 4; i++){
cout << "Temperatur i " << stader[i] << ": "<< temperatur[i] << " grader" << endl;

}


return 0;
}

Laguna Online 30471
Postad: 26 dec 2021 21:42

Vad blir fel?

Kaptenstein 14
Postad: 26 dec 2021 22:07

Felet som blir är att den säger att bubbelsort inte är decklarerad sen får jag inte det att sortera det som användaren skrivit i

Laguna Online 30471
Postad: 26 dec 2021 22:19

Om du får kompileringsfel finns det inget program du kan köra, så jag förstår inte andra halvan av det du skriver.

Semikolonet ska bort på den här raden:

void bubblesort(StadTemp s[], int n);

Tala om det exakta felmeddelandet när du får ett fel, inklusive radnummer.

Kaptenstein 14
Postad: 26 dec 2021 22:47

radnummer 73 där jag försöker lägga till bubblesort();

bubblesort was not declared in this scope.

osäker på hur jag ska få det att funka sen vad jag ska lägga i parantesen, vill ju få in så att användarens svar sorteras men fattar inte hur jag gör. ( första gången jag gör detta)

Lindehaven 820 – Lärare
Postad: 27 dec 2021 13:29

Funktionen linearsearch är inte färdig-deklarerad eftersom den saknar ett avslutande curly brace. Därför kommer funktionen bubblesort att deklareras lokalt inne i funktionen linearsearch och därför vara out of scope i funktionen main. Skriv om, ex:


int linearsearch(StadTemp s[], int n, int a)

{

    for (int i = 0; i < n; i++)

    {

        if (s[i].temp == a)

            return i;

    }

    return -1;

}

Laguna Online 30471
Postad: 27 dec 2021 13:37

Sånt är lättare att se om koden är indenterad korrekt. Se till att den är det i ditt original och använd kodverktyget {;} när du klistrar in här.

Kaptenstein 14
Postad: 27 dec 2021 13:55

Tack så mycket för svar jag fick den att funka idag på morgonen! gjorde precis så som ni skrev! tackar!! 

Va så säkra på att det kommer mer frågor längre fram :)

Svara
Close