Can someone help me on this?
While considering the following function definition:

void defaultParam(int u, int v = 5, double z = 3.2)
{
     int a;
     u = u + static_cast<int>(2 * v + z);
     a = u + v * z;
     cout << "a = " << a << endl;
}

What does the following output
a)

defaultParam(6);

b)

defaultParam(3,4);

c)

defaultParam(3, 0, 2.8);

I got a) 35 b)28.8 c) 24.96. Is that anywhere close?

I'm not sure how to put it. I have gotten this far but am missing some stuff. I'm mostly concerned about the first one, once I do that I can do the other 2.

#include <iostream>
#include <iomanip>

using namespace std;

void defaultParam(int u, int v = 5, double z = 3.2);

int main()
{
    defaultParam(6);
    cout << defaultParam << endl;
    system ("pause");
    
    return 0;
}

void defaultParam(int u, int v = 5, double z = 3.2)
{
     int a;
     u = u + static_cast<int>(2 * v + z);
     a = u + v * z;
     cout << "a = " << a << endl;
}

Why not get a calculator and do the math on a piece of paper? It'll be substantially quicker than waiting for a forum reply.

>>I got a) 35 b)28.8 c) 24.96. Is that anywhere close?
Quickly doing it in my head, I believe situation "a" is correct.

Edited 6 Years Ago by Fbody: n/a

see the function carefully.
void defaultParam(int u, int v = 5, double z = 3.2)
{
int a;
u = u + static_cast<int>(2 * v + z);
a = u + v * z;
cout << "a = " << a << endl;
}
Here you have called 2 integers and a double.
a) defaultParam(6): the function will get value for int u only ; v and z will work with the default values such as 5 and 3.2 respectively.
b) same to a
c) Here u,v and z will get 3,0,2.8.

If you want to print u as an iteger , the you have to type cast u.

My point is that this statement

cout << "a = " << a << endl;

prints the value of a , which is a variable of type int.

That means that it is impossible for this statement to print anything with a decimal point in it. So if you tell me that this statement will print 28.8, I know you're wrong, and I don't even have to look at the rest of the program.

This article has been dead for over six months. Start a new discussion instead.