Reputation: 21
I've been trying to learn C from a book called C Programming Absolute Beginner's Guide and I have come across a problem and the one bad thing is you can't ask a book a question! Typed the error into Google and it brought me to this site. The error I'm getting is in the question title and this is my code.
#include <stdio.h>
main(
{
//Set up the variables, as well as define a few
char firstInitial, middleInitial;
int number_of_pencils;
int number_of_notebooks;
float pencils = 0.23;
float notebooks = 2.89;
float lunchbox = 4.99;
//The information for the first child
firstInitial = 'J';
middleInitial = 'R';
number_of_pencils = 7;
number_of_notebooks = 4;
printf("%c%c needs %d pencils, %d notebooks, and 1 lunchbox\n",
firstInitial, middleInitial,number_of_pencils,
number_of_notebooks);
printf("The total cost is £%.2f\n\n", number_of_pencils*pencils + number_of_notebooks*notebooks + lunchbox);
//The information for the second child
firstInitial ='A';
middleInitial = 'J';
number_of_pencils = 10;
number_of_notebooks = 3;
printf("%c%c needs %d pencils, %d notebooks, and 1 lunchbox\n",
firstInitial, middleInitial,number_of_pencils,
number_of_notebooks);
printf("The total cost is £%.2f\n\n", number_of_pencils*pencills
+ number_of_notebooks*notebooks + lunchbox);
//The information for the third child
firstInitial = 'M';
middleInitial = 'T';
number_of_pencils = 9;
number_of_notebooks = 2;
printf("%c%c needs %d pencils, %d notebooks, and 1 lunchbox\n",
firstInitial, middleInitial,number_of_pencils,
number_of_notebooks);
printf("The total cost is £%.2f\n",
number_of_pencils8pencils + number_of_notebooks*notebooks + lunchbox);
return0;
}
)
What's wrong with this code?
Upvotes: 2
Views: 17024
Reputation: 753515
Your main()
function starts:
main(
{
and ends:
}
)
This is wrong. It should be:
int main(void)
{
…body of function…
}
The void
is optional. The return type is not optional in modern C (the C89/C90 standard allowed it to be optional; C99 and later requires it; you should program as if it is required even if your compiler doesn't insist on it). The correct return type is int
(but see What should main
return in C and C++? for the full details).
Also, as Rizier123 pointed out, have return0;
at the end of main()
; that should be return 0;
.
I've not compiled the code to see what other errors there are, but the mishandling of parentheses and braces was the cause of the initial error.
Upvotes: 1
Reputation: 2917
Your main function is not good.The compiler says it.
It should look like
main()
{
....
}
Instead of
main(
{
...
}
)
Upvotes: 2