Permalänk
Medlem

C++ felkoder till uppgift

Hej,

Jag håller på att läsa programmering 1, och jag har fastnat lite, den handlar om att felsöka kod, jag har lyckats få bort ca 5 felmeddelanden, och nu är det en { som sabbar, och testat massor av varierade lösningar, men får antingen mer felmeddelanden eller fel i koderna. Är det någon som kan förklara vad jag missar? Nedan är koden:

Felkoderna som blir är båda på samma och:
Expected a declaration
'{': missing function header(old style format list?)

#include<iostream>

using namespace std;

int main()

{

int i=0;
while (i <= 24);
}
{ <-//Denna som felkodar
cout << "Ange temperatur för timme" << i << ":";
int newTemp
cin >> newTemp;
totalTemp = totalTemp + newTemp;
i++;

cout << "Medeltemperaturen för dygnet är" totalTemp = 24 << "grader";

}

Permalänk
Medlem

while (i <= 24)-->;<-- ta väck semikolonet här

Permalänk
Hedersmedlem

Funktionen main slutar på raden ovanför den du pekar på, eftersom den klammern avslutar den som öppnas på rad 4 (blanka rader borträknade).
Och while-loopen är tom: ett semikolon efter gör att "kroppen" för loopen blir samma som bara {}. Rätt syntax för en while-loop är while (condition) { body }, utan semikolon förutom på slutet av varje rad innanför klamrarna.

Vill inte ge hela lösningen, men det där är de viktiga problemen.

Visa signatur

Asus ROG STRIX B550-F / Ryzen 5800X3D / 48 GB 3200 MHz CL14 / Asus TUF 3080 OC / WD SN850 1 TB, Kingston NV1 2 TB + NAS / Corsair RM650x V3 / Acer XB271HU (1440p165) / LG C1 55"
Mobil: Moto G200

Permalänk
Medlem

Tack. Jag tror att jag fattade, lyckades få bort felkoderna så programmet gick att köra. Nästa problem är att när det körs är det bara en svart ruta 😂

Permalänk
Medlem
Skrivet av Rikurt:

Tack. Jag tror att jag fattade, lyckades få bort felkoderna så programmet gick att köra. Nästa problem är att när det körs är det bara en svart ruta 😂

du har nog plockat bort för mycket kod, testa igen från början med det du lärt dig under första omgången. Men du bör väl först försöka förstå syftet med programmet och vad alla kodrader gör, om du bara editerar i blindo så lär det bli svårt.

Permalänk
Medlem

Skriv koden i code taggar så ser vi hur du indenterat.

Felkoder ger ibland ingen bra info om vad som är fel.
Skriv en utskrift före och efter varje grej så ser du vad som händer och inte händer.
cout << "test";

Kolla efter en exempel while-loop så kan du se hur det ska vara uppbyggt.

Permalänk
Medlem

Lite sent ute kanske. Antar att du hittat alla fel men jag vill ändå påpeka att det är något som är fel i cout. I utmatnings operatörerna.

Permalänk
Medlem

Hej alla, och tack för era svar, jag har lyckats klura ut felkodningen, men nu har jag ett annat bekymmer, jag har fått programmet att fungera med denna kod:

#include<iostream> using namespace std; int main() { int i = 0; float totalTemp = 0; while (i <= 24) { cout << "Ange temperatur f\x94r timme\n" << i <<":\n"; int newTemp; cin >> newTemp; totalTemp = totalTemp + newTemp; i++; cout << "Medeltemperaturen f\x94r dygnet \x84r" << totalTemp / 24 << "grader\n"; } }

Nu får jag upp i prorammet:
Ange temperatur för timme0:13
Medeltemperaturen för dygnet är0.541667graderAnge temperatur för timme1:
Nu är det en estetisk sak jag skulle vilja åtgärda, jag skulle vilja ha ett mellanslag så det ser ut såhär:
Ange temperatur för timme 0: 13
Medeltemperaturen för dygnet är ******
Ange temperatur för timme 1:

Förstår ni? Så att medeltemperaturen visas enskilt under Ange temperatur, och ange temperatur alltid är på enskild rad? Har googlat och testat och det känns väldigt basic men lyckas inte få till det.

Permalänk
Medlem

Använd kodtaggar!

#include<iostream> using namespace std; int main() { int i = 0; float totalTemp = 0; while (i <= 24) { cout << "Ange temperatur f\x94r timme\n" << i <<":\n"; int newTemp; cin >> newTemp; totalTemp = totalTemp + newTemp; i++; cout << "Medeltemperaturen f\x94r dygnet \x84r" << totalTemp / 24 << "grader\n"; } }

Lägg in ett mellanslag på de ställen i strängarna där du vill ha dem, det är inte svårare än så

Permalänk
Moderator
Festpilot 2020, Antiallo
Skrivet av Rikurt:

Hej alla, och tack för era svar, jag har lyckats klura ut felkodningen, men nu har jag ett annat bekymmer, jag har fått programmet att fungera med denna kod:
#include<iostream>
using namespace std;
int main()
{
int i = 0;
float totalTemp = 0;
while (i <= 24)
{
cout << "Ange temperatur f\x94r timme\n" << i <<":\n";
int newTemp;
cin >> newTemp;
totalTemp = totalTemp + newTemp;
i++;
cout << "Medeltemperaturen f\x94r dygnet \x84r" << totalTemp / 24 << "grader\n";
}
}

Nu får jag upp i prorammet:
Ange temperatur för timme0:13
Medeltemperaturen för dygnet är0.541667graderAnge temperatur för timme1:
Nu är det en estetisk sak jag skulle vilja åtgärda, jag skulle vilja ha ett mellanslag så det ser ut såhär:
Ange temperatur för timme 0: 13
Medeltemperaturen för dygnet är ******
Ange temperatur för timme 1:

Förstår ni? Så att medeltemperaturen visas enskilt under Ange temperatur, och ange temperatur alltid är på enskild rad? Har googlat och testat och det känns väldigt basic men lyckas inte få till det.

Som föreslaget tidigare så använder du lämpligen Code-taggar för att det ska gå att läsa din kod framledes.

[code]
STOPPA IN KODEN HÄR
[/code]

Visa signatur

 | PM:a Moderatorerna | Kontaktformuläret | Geeks Discord |
Testpilot, Skribent, Moderator & Geeks Gaming Huvudadmin

Permalänk
Moderator
Festpilot 2020, Antiallo

Nu får jag upp i prorammet:
Ange temperatur för timme0:13
Medeltemperaturen för dygnet är0.541667graderAnge temperatur för timme1:
Nu är det en estetisk sak jag skulle vilja åtgärda, jag skulle vilja ha ett mellanslag så det ser ut såhär:
Ange temperatur för timme 0: 13
Medeltemperaturen för dygnet är ******
Ange temperatur för timme 1:

Förstår ni? Så att medeltemperaturen visas enskilt under Ange temperatur, och ange temperatur alltid är på enskild rad? Har googlat och testat och det känns väldigt basic men lyckas inte få till det.
[/quote]

"Medeltemperaturen f\x94r dygnet \x84r" <- inget mellanslag.
"Medeltemperaturen f\x94r dygnet \x84r " <- Mellanslag inkluderat.

Om du inte har en radbrytning så blir det ingen radbrytning. För att få en radbrytning, inkludera en radbrytning i printout.

Visa signatur

 | PM:a Moderatorerna | Kontaktformuläret | Geeks Discord |
Testpilot, Skribent, Moderator & Geeks Gaming Huvudadmin