Im trying to learn multiple functions and trying to put a class in a program. Cans you please tell me what bit of code to make into a function to call into main to make the program shorter and what to put in a class
#include <iostream>
#include <cstdlib>
usingnamespace std;
int main()
{
int Total = 0;
int Amount;
int Number;
int whatoperation;
int answertoaverage;
int restart;
while (restart) {
system("CLS");
cout << "Here are your choices(enter the number before the operation)" << endl << endl;
cout << "1.Addition" << endl;
cout << "2.Subtraction" << endl;
cout << "3.Multiplication" << endl;
cout << "4.Division" << endl;
cout << "5.Average Calculator" << endl;
cin >> whatoperation;
system("CLS");
switch(whatoperation){
case 1:
cout << "Enter in how many numbers you want to use" << endl;
cin >> Amount;
for(int i = 0; i < Amount; i++) // Keeps looping until i == Amount
{
cout << "Number " << i << ": " ; // Shows user what number they are entering
cin >> Number;
Total = Number + Total; // Adds number to total
}
cout << "The total is " << Total << endl; // Prints out total value when loop has finished
break;
case 2:
cout << "Enter in how many numbers you want to use" << endl;
cin >> Amount;
for(int i = 0; i < Amount; i++)
{
cout << "Number " << i << ": " ;
cin >> Number;
if(i == 0)
{
Total = Total + Number;
}
else
{
Total = Total - Number;
}
}
cout << "The total is " << Total << endl;
break;
case 3:
cout << "Enter in how many numbers you want to use" << endl;
cin >> Amount;
for(int i = 0; i < Amount; i++)
{
cout << "Number " << i << ": " ;
cin >> Number;
if(i == 0)
{
Total = Total + Number;
}
else
{
Total = Total * Number;
}
}
cout << "The total is " << Total << endl;
break;
case 4:
cout << "Enter in how many numbers you want to use" << endl;
cin >> Amount;
for(int i = 0; i < Amount; i++)
{
cout << "Number " << i << ": " ;
cin >> Number;
if(i == 0)
{
Total = Total + Number;
}
else
{
Total = Total / Number;
}
cout << "The total is " << Total << endl;
}
break;
case 5:
cout << "Enter how many numbers you want to find the average of: ";
cin >> Amount;
for(int i = 0; i < Amount; i++)
{
cout << "Number " << i << ": " ;
cin >> Number;
Total = Number + Total;
}
answertoaverage = Total / Amount;
cout << "The average of those " << Amount << " numbers is " << answertoaverage << endl;
}
cout << "enter 1 to restart or 2 to quit: ";
cin >> restart;
if(restart == 1){
}else{
break;
}
}
cin.get();
return 0;
}
Going from what the last person said, you can create a function (like int main) by either making an int function, which holds a value, something you want to output(which would be very helpful in this program) or a void function.
#include <iostream>
usingnamespace.std
int somefunction()
{
//addition
}
int anotherfunction()
{
//subtraction, etc...
}
int main()
{
//blah blah
case 1:
somefunction(); //calls whatever that function does, in this case the comment of addition does nothing, to do it here
break;
case 2:
anotherfunction(); //calls the function anotherfunction to work here
break;
}
The void function is the same but cannot hold a value:
1 2 3 4 5 6 7 8
void somefunction()
{
//whatever it does
}
int main()
{
somefunction(); //calls the function above to use right here
}
Keep in mind that the parentheses behind the function can retain a value or variable.
hope that helps!
int someFunc()
{
int x = 1;
return x; // This is okay, function type is int, it's returning an int
}
double someFunc()
{
float x = 1.2;
return x; // ERROR, can only return type double
}
void someFunc()
{
int x = 1;
return x; // ERROR, can't return anything (void function)
}
They can all take and arguments though:
1 2 3
int someFunc(char a, int b, int c)
double someFunc(int a, double b)
void someFunc(string a, float b, float c, int d)
double someFunc()
{
float x = 1.2;
return x; // ERROR, can only return type double
}
Uh, no, this is completely valid. A float is always implicitly convertible to a double, because a double is more precise than a float and can take its value. This is an 'implicit widening cast'
Also, what is a 'double function' or a 'void function'? I do not understand, there are only functions, and some can return values while others return nothing.