// C code
// This program will provide options for a user to calculate the square,
// cube, divide by 2 ,or multiple by 10 when users inputs a positive Integer .
// Developer: Gilberto Nazario CMIS102/4060
// Date: APR 23, 2017
#include <stdio.h>
// -- the newer C compilers require that functions be prototyped
// -- this tells the compiler what the input and output datatypes of the functions are
// -- the functions are later defined after the main.
// function prototypes
int Square ( int ) ;
int Cube ( int ) ;
float Divide2 ( int ) ;
int multiply10 ( int ) ;
int main ( )
{
/* variable definition: */
int intValue, menuSelect, Results;
float quotient;
intValue = 1 ;
// While a positive number
while ( intValue > 0 )
{
// Prompt the user for number
printf ( "Enter a positive Integer\n : " ) ;
// test for positive value input
//if (intValue > 0)
{
printf ( "Enter 1 to calculate Square, 2 to Calculate Cube, 3 to Divide by 2, or 4 to multiply by 10 \n : " ) ; scanf ( "%d" , & menuSelect
) ;
if ( menuSelect == 1 )
{
// Call the Square Function
Results = Square( intValue) ;
printf ( "Square of %d is %d\n " , intValue
, Results
) ;
}
else if ( menuSelect == 2 )
{
// Call the Cube function
Results = Cube( intValue) ;
printf ( "Cube of %d is %d\n " , intValue
, Results
) ;
} //endif - menuSelect
else if ( menuSelect == 3 )
{
//Call Divide2 function
quotient = Divide2( intValue) ;
printf ( "%d divided by 2 is %.2f\n " , intValue
, quotient
) ;
}
else if ( menuSelect == 4 )
{
//Call multiply10 function
Results = multiply10( intValue) ;
printf ( "%d multiplied by 10 is %d\n " , intValue
, Results
) ;
}
else
{
printf ( "Invalid menu item, only 1, 2, 3 or 4 is accepted\n " ) ;
}
}
} //EndWhile
return 0 ;
}
/*** Function defintions ***/
/* function returning the Square of a number */
// This function will return the square of the input value
// Input: value - input number
// Output: return - input number squared (x*x)
int Square( int value)
{
return value* value;
}
/* function returning the Cube of a number */
// This function will return the cube of the input value
// Input: value - input number
// Output: return - input number cubed (x*x*x)
int Cube( int value)
{
return value* value* value;
}
//function returing division by 2//
//this function divide an integer by 2, the function will return a float
//input: value - input number
//output: return - input number divided by 2
float Divide2( int value)
{
return ( float ) value/ 2.0 ;
}
//function returing multiplication by 10//
//this function multiple an integer by 10, the function will return a float
//input: value - input number
//output: return - input number multipled by 10
int multiply10( int value)
{
return value * 10 ;
}
Ly8gQyBjb2RlCgovLyBUaGlzIHByb2dyYW0gd2lsbCBwcm92aWRlIG9wdGlvbnMgZm9yIGEgdXNlciB0byBjYWxjdWxhdGUgdGhlIHNxdWFyZSwKLy8gY3ViZSwgZGl2aWRlIGJ5IDIgLG9yIG11bHRpcGxlIGJ5IDEwIHdoZW4gdXNlcnMgaW5wdXRzIGEgcG9zaXRpdmUgSW50ZWdlciAuCi8vIERldmVsb3BlcjogR2lsYmVydG8gTmF6YXJpbyBDTUlTMTAyLzQwNjAKLy8gRGF0ZTogQVBSIDIzLCAyMDE3CgojaW5jbHVkZSA8c3RkaW8uaD4KCi8vIC0tIHRoZSBuZXdlciBDIGNvbXBpbGVycyByZXF1aXJlIHRoYXQgZnVuY3Rpb25zIGJlIHByb3RvdHlwZWQKLy8gLS0gdGhpcyB0ZWxscyB0aGUgY29tcGlsZXIgd2hhdCB0aGUgaW5wdXQgYW5kIG91dHB1dCBkYXRhdHlwZXMgb2YgdGhlIGZ1bmN0aW9ucyBhcmUKLy8gLS0gdGhlIGZ1bmN0aW9ucyBhcmUgbGF0ZXIgZGVmaW5lZCBhZnRlciB0aGUgbWFpbi4KCi8vIGZ1bmN0aW9uIHByb3RvdHlwZXMgICAKaW50IFNxdWFyZSAoIGludCApOwppbnQgQ3ViZSAoIGludCApOwpmbG9hdCBEaXZpZGUyIChpbnQpOwppbnQgbXVsdGlwbHkxMCAoaW50KTsKCmludCBtYWluICgpCnsKICAgLyogdmFyaWFibGUgZGVmaW5pdGlvbjogKi8KCiAgIGludCBpbnRWYWx1ZSwgbWVudVNlbGVjdCwgUmVzdWx0czsKICAgZmxvYXQgcXVvdGllbnQ7CiAgIGludFZhbHVlID0gMTsKCiAgIC8vIFdoaWxlIGEgcG9zaXRpdmUgbnVtYmVyCiAgIHdoaWxlIChpbnRWYWx1ZSA+IDApCiAgIHsgIAoJCS8vIFByb21wdCB0aGUgdXNlciBmb3IgbnVtYmVyCgkJcHJpbnRmICgiRW50ZXIgYSBwb3NpdGl2ZSBJbnRlZ2VyXG46ICIpOwoJCXNjYW5mKCIlZCIsICZpbnRWYWx1ZSk7CgoJCS8vIHRlc3QgZm9yIHBvc2l0aXZlIHZhbHVlIGlucHV0CgkJLy9pZiAoaW50VmFsdWUgPiAwKQoJCXsKCQkJcHJpbnRmICgiRW50ZXIgMSB0byBjYWxjdWxhdGUgU3F1YXJlLCAyIHRvIENhbGN1bGF0ZSBDdWJlLCAzIHRvIERpdmlkZSBieSAyLCBvciA0IHRvIG11bHRpcGx5IGJ5IDEwIFxuOiAiKTsKCQkJc2NhbmYoIiVkIiwgJm1lbnVTZWxlY3QpOwoKCQkJaWYgKG1lbnVTZWxlY3QgPT0gMSkKCQkJewoJCQkJLy8gQ2FsbCB0aGUgU3F1YXJlIEZ1bmN0aW9uCgkJCQlSZXN1bHRzID0gU3F1YXJlKGludFZhbHVlKTsKCQkJCXByaW50ZigiU3F1YXJlIG9mICVkIGlzICVkXG4iLGludFZhbHVlLFJlc3VsdHMpOwoJCQkJCgkJCX0KCiAgICAgICAgICAgIAoJCQllbHNlIGlmIChtZW51U2VsZWN0ID09IDIpCgkJCXsKCQkJCS8vIENhbGwgdGhlIEN1YmUgZnVuY3Rpb24KCQkJCVJlc3VsdHMgPSBDdWJlKGludFZhbHVlKTsKCQkJCXByaW50ZigiQ3ViZSBvZiAlZCBpcyAlZFxuIixpbnRWYWx1ZSxSZXN1bHRzKTsKCQkJCgkJCX0gIC8vZW5kaWYgLSBtZW51U2VsZWN0CgkJCQoJCQllbHNlIGlmIChtZW51U2VsZWN0ID09IDMpCgkJCXsKCQkJCS8vQ2FsbCBEaXZpZGUyIGZ1bmN0aW9uCgkJCQlxdW90aWVudCA9IERpdmlkZTIoaW50VmFsdWUpOwoJCQkJcHJpbnRmKCIlZCBkaXZpZGVkIGJ5IDIgaXMgJS4yZlxuIiwgaW50VmFsdWUsIHF1b3RpZW50KTsKCQkJCgkJCX0KCQkJCgkJCWVsc2UgaWYgKG1lbnVTZWxlY3QgPT0gNCkgCgkJCQoJCQl7CgkJCQkvL0NhbGwgbXVsdGlwbHkxMCBmdW5jdGlvbgoJCQkJUmVzdWx0cyA9IG11bHRpcGx5MTAoaW50VmFsdWUpOwoJCQkJcHJpbnRmKCIlZCBtdWx0aXBsaWVkIGJ5IDEwIGlzICVkXG4iLCBpbnRWYWx1ZSwgUmVzdWx0cyk7CgkJCQoJCQl9CgkJCQoJCSAgICBlbHNlIAoJCSAgICB7CgkJICAgICAgcHJpbnRmKCJJbnZhbGlkIG1lbnUgaXRlbSwgb25seSAxLCAyLCAzIG9yIDQgaXMgYWNjZXB0ZWRcbiIpOwoJCSAgICAKCQkgICAgfQoJCX0gICAgCgkKCQogICB9IC8vRW5kV2hpbGUgICAKCglyZXR1cm4gMDsKCn0KCi8qKiogRnVuY3Rpb24gZGVmaW50aW9ucyAqKiovCgovKiBmdW5jdGlvbiByZXR1cm5pbmcgdGhlIFNxdWFyZSBvZiBhIG51bWJlciAqLwovLyBUaGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIHRoZSBzcXVhcmUgb2YgdGhlIGlucHV0IHZhbHVlCi8vIElucHV0OiB2YWx1ZSAtIGlucHV0IG51bWJlcgovLyBPdXRwdXQ6IHJldHVybiAtIGlucHV0IG51bWJlciBzcXVhcmVkICh4KngpCmludCBTcXVhcmUoaW50IHZhbHVlKQp7CiAgIHJldHVybiB2YWx1ZSp2YWx1ZTsKfQoKLyogZnVuY3Rpb24gcmV0dXJuaW5nIHRoZSBDdWJlIG9mIGEgbnVtYmVyICovCi8vIFRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gdGhlIGN1YmUgb2YgdGhlIGlucHV0IHZhbHVlCi8vIElucHV0OiB2YWx1ZSAtIGlucHV0IG51bWJlcgovLyBPdXRwdXQ6IHJldHVybiAtIGlucHV0IG51bWJlciBjdWJlZCAoeCp4KngpCmludCBDdWJlKGludCB2YWx1ZSkKewogICByZXR1cm4gdmFsdWUqdmFsdWUqdmFsdWU7Cn0KCi8vZnVuY3Rpb24gcmV0dXJpbmcgZGl2aXNpb24gYnkgMi8vCi8vdGhpcyBmdW5jdGlvbiBkaXZpZGUgYW4gaW50ZWdlciBieSAyLCB0aGUgZnVuY3Rpb24gd2lsbCByZXR1cm4gYSBmbG9hdAovL2lucHV0OiB2YWx1ZSAtIGlucHV0IG51bWJlcgovL291dHB1dDogcmV0dXJuIC0gaW5wdXQgbnVtYmVyIGRpdmlkZWQgYnkgMgpmbG9hdCBEaXZpZGUyKGludCB2YWx1ZSkKewoJcmV0dXJuIChmbG9hdCl2YWx1ZS8yLjA7Cn0KLy9mdW5jdGlvbiByZXR1cmluZyBtdWx0aXBsaWNhdGlvbiBieSAxMC8vCi8vdGhpcyBmdW5jdGlvbiBtdWx0aXBsZSBhbiBpbnRlZ2VyIGJ5IDEwLCB0aGUgZnVuY3Rpb24gd2lsbCByZXR1cm4gYSBmbG9hdAovL2lucHV0OiB2YWx1ZSAtIGlucHV0IG51bWJlcgovL291dHB1dDogcmV0dXJuIC0gaW5wdXQgbnVtYmVyIG11bHRpcGxlZCBieSAxMAppbnQgbXVsdGlwbHkxMChpbnQgdmFsdWUpIAp7CglyZXR1cm4gdmFsdWUgKiAxMDsgCn0KCgo=