In: Computer Science
Q.3
1- Why is the typecast operator needed to compute the mean in the
statement mean = static_cast(float)(total)/value;? What do you
think will happen if it is removed? Modify the code and try it.
Record what happens. Make sure that you try both even and odd
cases. Now put static_cast<float> total back in the
program.
2- What happens if you enter a float such as 2.99 instead of an
integer for value? Try it and record the results.
3- Modify the code so that it computes the mean of the consecutive
positive integers n, n+1, n+2, . . . , m, where the user chooses n
and m. For example, if the user picks 3 and 9, then the program
should find the mean of 3, 4, 5, 6, 7, 8, and 9, which is 6.
// This program has the user input a number n and then finds
the
// mean of the first n positive integers
// PLACE YOUR NAME HERE
#include <iostream>
using namespace std;
int main()
{
int value; // value is some positive number n
int total = 0; // total holds the sum of the first n positive
numbers
int number; // the amount of numbers
float mean; // the average of the first n positive numbers
cout << "Please enter a positive integer" <<
endl;
cin >> value;
if (value > 0)
{
for (number = 1; number <= value; number++)
{
total = total + number;
} // curly braces are optional since there is only one
statement
mean = static_cast<float>(total) / value; // note the use of
the typecast
// operator here
cout << "The mean average of the first " << value
<< " positive integers is " << mean <<
endl;
}
else
cout << "Invalid input - integer must be positive" <<
endl;
return 0;
}
Q3 ans
1 ans:static_cast<float> opearter used for compile time cast.It is used for conversion between data types
Assume that value=4
actual average of first fout numbers is 2.5
with static_cast<float>:
total=1+2+3+4=10
value=4
average=10/4=2.5
with out static_cast<float>:
total=1+2+3+4=10
value=4
average=10/4=2 (In this it ignores float values)
2.ans
if we give input as 2.99
it will take as 2 since value is int variable. it will ignore decimal portion.
total=1+2=3
value=2
average=3/2=1.5
so average first two numbers 1.5 will be displayed as output when we give 2.99 as input.
3.ans:
Source Code:
#include <iostream>
using namespace std;
int main()
{
int N; // value is some positive number n
int M; //value is some positive number m
int total = 0; // total holds the sum of the first n positive
numbers
int number; // the amount of numbers
float mean; // the average of the first n positive numbers
cout << "Please enter a positive integer(N)" <<
endl;
cin >> N;
cout << "Please enter a positive integer(M)" <<
endl;
cin >> M;
if (M > N && N>0)
{
for (number = N; number <= M; number++)
{
total = total + number;
} // curly braces are optional since there is only one
statement
mean = static_cast<float>(total) /(M-N+1); // note the use of
the typecast
// operator here
cout << "The mean average of the numbers from " <<N
<< " to "<<M<<
" is :" << mean << endl;
}
else if(N>=M)
{
cout<<"second number must be greater than first";
}
else
cout << "Invalid input - integer must be positive" <<
endl;
return 0;
}
Code screenshot:
Output: