Ik heb een probleem met iets dat ik programmeer.
Ik krijg deze foutmelding keer op keer;
jharvard@appliance (~/Dropbox/pset1): make mario
clang -ggdb3 -O0 -std=c99 -Wall -Werror mario.c -lcs50 -lm -o mario
mario.c:23:5: error: expected identifier or '('
do
^
mario.c:32:1: error: expected identifier or '('
do
^
2 errors generated.
Ik heb het hele internet afgezocht maar kon het probleem niet vinden..
het verwijderen van de; nadat int main(void)
niet hielp
Dit is mijn code:
#include <stdio.h>
#include <cs50.h>
#include <math.h>
int main(void);
//Ask User for Height, and check
int a, b, rows, height;
int a = 0;
int b = 0;
int rows = 1;
do
{
printf ("Height: ");
height = GetInt();
}
while (height <=0 || height > 23);
//build half pyramid
do
{
do
{
printf("r");
a++;
}
while (a < height - rows);
do
{
printf("#");
b++;
}
while (b < rows + 1);
printf("\n");
rows++;
while (rows <= height);
}
Ik probeer dit probleem al een paar dagen op te lossen, maar ik kom er gewoon niet uit!
Bij voorbaat hartelijk dank!
Antwoord 1, autoriteit 100%
Je hebt een geneste lus met do/while. Zorg ervoor dat elke start met do eindigt op while.
Het lijkt erop dat aan het einde van het bestand de “while” niet correct is.
printf("\n");
rows++;
while (rows <= height);
}
Het kan zijn dat u de afsluiting ‘}’ voor ‘while (rijen <= hoogte);’
mist
De juiste code kan zijn:
int main(void)
{
//Ask User for Height, and check
int a, b, rows, height;
a = 0; // <- removed int
b = 0; // <- removed int
rows = 1; // <- removed int
do
{
printf ("Height: ");
height = GetInt();
}
while (height <=0 || height > 23);
//build half pyramid
do
{
do
{
printf("r");
a++;
}
while (a < height - rows);
do
{
printf("#");
b++;
}
while (b < rows + 1);
printf("\n");
rows++;
} // <- add }
while (rows <= height);
}
Antwoord 2, autoriteit 90%
int main(void);
Je hebt zojuist de main
aangegeven. Je moet het definiëren en de code binnen die definitie toevoegen.
int main()
{
.....
}
Antwoord 3, autoriteit 50%
Hoofdbericht is aangepast, dus duidelijk antwoord.
Al uw code bevindt zich buiten een functie omdat u int main(); je declareert een functie. Gebruik in plaats daarvan {} haakjes.
int main() {
//Code here.
}
Antwoord 4, autoriteit 50%
int a, b, rows, height;
int a = 0;
int b = 0;
Hier in uw bovenstaande verklaringen a
EN b
worden opnieuw gedeclareld meer dan eens het veroorzaken van compilatiefout.
Antwoord 5, Autoriteit 25%
Neem de laatste keer buiten de DOE-reikwijdte:
while (rows <= height);
Antwoord 6, Autoriteit 25%
Als u uw code niet inspringt, zou u (op alle middelen) moeten doen, minstens schrijf de start en de eindkrullende haakjes tegelijk wanneer u de lusverklaring schrijft, voordat u de lus-instructie schrijft Elke code in het lichaam van die lus (die tussen de krullende beugels gaat). Het zal je in de toekomst van problemen redden.
Antwoord 7
In geval van reageer het native project …. het is een eenvoudig probleem.
U kunt naar uw projectdoel gaan in iOS en Check Build, Version and Build Identifier … Mogelijk hebben ze extra ruimte aan het einde dat moet worden verwijderd
Ik hoop dat het helpt. Werkte voor mij
Antwoord 8
Het is omdat je een puntkomma hebt gemaakt na int main(void)
, ik ben er geweest.
// v
// int main(void);
int main(void)