I am a beginner c++ programmer, I was wondering if somebody could help me get rid of this error

#include "stdafx.h"
#include<iostream>
using namespace std;
//declaration of function: convert miles  and time, into nautical miles,kilometer,meters,feet,calculat mile per hour,calculate kilometer per hour,calculate meter per second,calculate feet per second,calculate nautical mile per hour
//input: miles and time in minutes 
//output: nautical mile, kilometer, meter, feet, mile per hour,kilometer per hour,feet per second,nautical mile per hour, meter per second


float convert_miles_into_nautical_mile(float miles);
float convert_miles_into_kilometer(float miles);
float convert_miles_into_meter(float miles);
float convert_miles_into_feet(float miles);
float calculate_mile_per_hour(float minutes);
float calculate_kilometer_per_hour(float minutes);
float calculate_meter_per_second(float minutes);
float calculate_feet_per_second(float minutes);
float calculate_nautical_mile_per_hour(float minutes);


int _tmain(int argc, _TCHAR* argv[])
{

	
	//declaration
	float miles; float minutes; float nautical_mile; float kilometer; float meter; float feet; float mile_per_hour; float kilometer_per_hour; float meter_per_second; float feet_per_second; float nautical_mile_per_hour;
    
//Request miles
cout<<" Please insert miles\n";
cin>> miles;
// Request time in minutes
cout<<" Please insert time in minutes\n";
cin>> minutes;

nautical_mile = convert_miles_into_nautical_mile(miles);
cout<<"The conversion is"<<nautical_mile<<"nm"<<endl;

kilometer = convert_miles_into_kilometer(miles);
cout<<" The convesion is"<<kilometer<<"km"<<endl;

meter = convert_miles_into_meter(miles);
cout<<"The conversion is"<<meter<<"m"<<endl;

feet = convert_miles_into_feet(miles);
cout<<"The conversion is"<<"ft"<<endl;

mile_per_hour = calculate_mile_per_hour( minutes);
cout<<"The speed is"<<mile_per_hour<<"mph"<<endl;

kilometer_per_hour = calculate_kilometer_per_hour( minutes);
cout<<"The speed is"<<kilometer_per_hour<<"kmh"<<endl;

meter_per_second = calculate_meter_per_second( minutes);
cout<<"The speed is"<<meter_per_second<<"mps"<<endl;

feet_per_second = calculate_feet_per_second( minutes);
cout<<"The speed is"<<feet_per_second<<"fps"<<endl;

nautical_mile_per_hour = calculate_nautical_mile_per_hour( minutes);
cout<<"The speed is"<<nautical_mile_per_hour<<"nmph"<<endl;


return 0;
}
float  convert_miles_into_nautical_mile(float miles);

{                                                       located here at all the open brackets of my function
	float nautical_mile;
    nautical_mile = (miles * .8689762419006479);

	return (nautical_mile) ;
 }
float convert_miles_into_kilometer(float miles);
{
	float kilometer;
	kilometer= (miles * 1.609344);

	return (kilometer);
}
float convert_miles_into_meter(float miles);
{
	float meter;
	meter= (miles * 1609.344);

    return (meter);
}
float convert_miles_into_feet(float miles);
{
	float feet;
	feet= (miles * 5280);

	return (feet);
}
float calculate_mile_per_hour(float miles, float minutes);
{
	float mile_per_hour;
	miles_per_hour = (miles * 60)/minutes);

	return (mile per hour);
}
float calculate_kilometer_per_hour(float miles, float minutes);
{
	float kilometer_per_hour;
	kilometer_per_hour = (miles/minutes);
	return (kilometer_per_hour);
}
float calculate_meter_per_second(float miles, float minutes);
{
	float meter_per_second;
	meter_per_second = (miles * 1609.344)/minutes/60);
	return (meter_per_ second);
}
float calculate_feet_per_second(float miles, float minutes);
{
	float feet per second;
	feet per second = (miles /minutes/1.609);
	return (feet_per_second);
}
float calculate_nautical_mile_per_hour(float miles, float minutes);
{	
	float nautical mile per hour;
	nautical mile per hour = (miles * 60)/minutes);
	return (nautical_mile_per hour);
}

Could some body help me please
Thank you

Dani AI

Generated

The compiler error C2447 ("missing function header") in this thread is a syntax problem, not a runtime one. correctly flagged the stray semicolon after a function header; correctly flagged inconsistent identifier names and spaces. Other issues visible in the original post are mismatched prototypes vs. definitions (parameter lists must be identical), unmatched parentheses, and identifier tokens that contain spaces (for example, mile per hour is three tokens, not a name). Fix one syntax error at a time and recompile — the first reported error often hides several follow-ons.

Concrete repairs to apply:

  • Remove any semicolon that follows a function header. A header must be immediately followed by its body (an opening brace) or be just a prototype (ending with a semicolon) — not both.
  • Ensure every prototype (declaration above main) exactly matches its definition (types, parameter count and order).
  • Use valid identifiers (no spaces, use underscores or camelCase) and the same identifier consistently for declaration, assignment and return.
  • Balance parentheses and check every )/( and every }/{.
  • Guard against division by zero when using minutes as a divisor.
  • Compile frequently while fixing errors; correct the first compiler error and recompile to reveal the next.

A minimal, correct example style (different names from the original thread) demonstrating signature and body structure:

float toKilometers(float miles) {
    return miles * 1.609344f;
}

float milesPerHour(float miles, float minutes) {
    if (minutes == 0.0f) return 0.0f; // avoid divide-by-zero
    return (miles * 60.0f) / minutes;
}

After syntax fixes, consider either placing definitions above main or keeping prototypes and definitions consistent; use an IDE or the compiler line numbers to jump to each error.

Recommended Answers

All 3 Replies

The code is horrible. You still have a lot to learn.
But first:

float calculate_mile_per_hour(float miles, float minutes) //; there's no semicolon here!!!
{
float mile_per_hour;
miles_per_hour = (miles * 60)/minutes);

return (mile per hour);
}

I agree.. this is painful ..

To add to what Sci@phy told you, take a closer look at this

float calculate_mile_per_hour(float miles, float minutes);
{
float mile_per_hour;
miles_per_hour = (miles * 60)/minutes); 
return (mile per hour);
}

First of course, remove the semi-colon from all of your function definitions. Now, you declare your variable as mile_per_hour .. then on the next line you have miles_per_hour and you are trying to return mile per hour ... Your variable names ALL need to be exactly the same.. and you cannot have spaces in a variable name.

Read your code very carefully, and go through your compile errors and fix one line at a time. You need to read and understand your compile errors.

The code is horrible. You still have a lot to learn.
But first:

float calculate_mile_per_hour(float miles, float minutes) //; there's no semicolon here!!!
{
float mile_per_hour;
miles_per_hour = (miles * 60)/minutes);

return (mile per hour);
}

thank you

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.