#include <stdio.h>
int Square( int value) ;
int Cube( int value) ;
double Shrink ( double value) ;
int main ( )
{
/* variable definition: */
int intValue, menuSelect, Results;
intValue = 1 ;
// While a positive number
while ( intValue > 0 )
{
printf ( "Enter a positive Integer\n : " ) ;
if ( intValue > 0 )
{
printf ( "Enter 1 to calculate Square, 2 to calculate Cube, \ 3 to calculate Half \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
) ;
}
else if ( menuSelect == 3 )
{
// Call the Shrink function
Results = Shrink( intValue) ;
printf ( "Cube of %d is %lf \n " , intValue
, Results
) ;
}
else
printf ( "Invalid menu item, only 1, 2, or 3 is accepted\n " ) ;
}
}
return 0 ;
}
/* function returning the Square of a number */
int Square( int value)
{
return value* value;
}
/* function returning the Cube of a number */
int Cube( int value)
{
return value* value* value;
}
/* function returning half of a number */
double Shrink ( int value)
{
return value/ 2 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgU3F1YXJlKGludCB2YWx1ZSk7CmludCBDdWJlKGludCB2YWx1ZSk7CmRvdWJsZSBTaHJpbmsgKGRvdWJsZSB2YWx1ZSk7CmludCBtYWluICgpCgp7CgovKiB2YXJpYWJsZSBkZWZpbml0aW9uOiAqLwoKICAgaW50IGludFZhbHVlLCBtZW51U2VsZWN0LFJlc3VsdHM7CgogICBpbnRWYWx1ZSA9IDE7CgogICAvLyBXaGlsZSBhIHBvc2l0aXZlIG51bWJlcgoKd2hpbGUgKGludFZhbHVlID4gMCkKCnsgIAoKICAgICBwcmludGYgKCJFbnRlciBhIHBvc2l0aXZlIEludGVnZXJcbjogIik7CgogICAgIHNjYW5mKCIlZCIsICZpbnRWYWx1ZSk7CgogICBpZiAoaW50VmFsdWUgPiAwKQoKICAgewoKICAgICBwcmludGYgKCJFbnRlciAxIHRvIGNhbGN1bGF0ZSBTcXVhcmUsIDIgdG8gY2FsY3VsYXRlIEN1YmUsIFwgCiAgICAgMyB0byBjYWxjdWxhdGUgSGFsZiAgXG46ICIpOwoKICAgICBzY2FuZigiJWQiLCAmbWVudVNlbGVjdCk7CgogICAgIGlmIChtZW51U2VsZWN0ID09IDEpCgogICAgIHsKCiAgICAgICAvLyBDYWxsIHRoZSBTcXVhcmUgRnVuY3Rpb24KCiAgICAgICBSZXN1bHRzID0gU3F1YXJlKGludFZhbHVlKTsKCiAgICAgICBwcmludGYoIlNxdWFyZSBvZiAlZCBpcyAlZFxuIixpbnRWYWx1ZSxSZXN1bHRzKTsKCiAgICAgfQoKICAgICBlbHNlIGlmIChtZW51U2VsZWN0ID09IDIpCgogICAgIHsKCiAgICAgICAvLyBDYWxsIHRoZSBDdWJlIGZ1bmN0aW9uCgogICAgICAgUmVzdWx0cyA9IEN1YmUoaW50VmFsdWUpOwoKICAgICAgIHByaW50ZigiQ3ViZSBvZiAlZCBpcyAlZFxuIixpbnRWYWx1ZSxSZXN1bHRzKTsKCiAgICAgfQogICAgIAogICAgIGVsc2UgaWYgKG1lbnVTZWxlY3QgPT0gMykKICAgICAKICAgICB7CiAgICAgCS8vIENhbGwgdGhlIFNocmluayBmdW5jdGlvbgogICAgIAkKICAgICAJUmVzdWx0cyA9IFNocmluayhpbnRWYWx1ZSk7CiAgICAgCQogICAgIAlwcmludGYgKCJDdWJlIG9mICVkIGlzICVsZiBcbiIsIGludFZhbHVlLFJlc3VsdHMpOwogICAgIAkKICAgICB9CgogICAgIGVsc2UKCiAgICAgICBwcmludGYoIkludmFsaWQgbWVudSBpdGVtLCBvbmx5IDEsIDIsIG9yIDMgaXMgYWNjZXB0ZWRcbiIpOwoKICAgICB9ICAgIAoKICAgfSAgICAKCnJldHVybiAwOwoKfQoKLyogZnVuY3Rpb24gcmV0dXJuaW5nIHRoZSBTcXVhcmUgb2YgYSBudW1iZXIgKi8KCmludCBTcXVhcmUoaW50IHZhbHVlKQoKewoKICAgcmV0dXJuIHZhbHVlKnZhbHVlOwoKfQoKLyogZnVuY3Rpb24gcmV0dXJuaW5nIHRoZSBDdWJlIG9mIGEgbnVtYmVyICovCgppbnQgQ3ViZShpbnQgdmFsdWUpCgp7CiAgIHJldHVybiB2YWx1ZSp2YWx1ZSp2YWx1ZTsKCn0KCi8qIGZ1bmN0aW9uIHJldHVybmluZyBoYWxmIG9mIGEgbnVtYmVyICovCgpkb3VibGUgU2hyaW5rIChpbnQgdmFsdWUpCgp7CglyZXR1cm4gdmFsdWUvMjsKfQ==
compilation info
prog.c: In function ‘main’:
prog.c:30:65: warning: backslash and newline separated by space
printf ("Enter 1 to calculate Square, 2 to calculate Cube, \
prog.c:66:32: warning: format ‘%lf’ expects argument of type ‘double’, but argument 3 has type ‘int’ [-Wformat=]
printf ("Cube of %d is %lf \n", intValue,Results);
^
prog.c: At top level:
prog.c:103:8: error: conflicting types for ‘Shrink’
double Shrink (int value)
^~~~~~
prog.c:5:8: note: previous declaration of ‘Shrink’ was here
double Shrink (double value);
^~~~~~
stdout