c - Making a validation function to tell if the number entered is positve -
/* function i'm trying make bigger program calcs area of room. when answer <= 0 want function take over, keep getting few arguments error when compile it. gladly appreciated.*/
#include <stdio.h> int validinput(double len); int main(void) { double len ; int check; printf("\nenter length of room in feet:"); scanf("%lf", &len); check = validinput(); return 0; } int validinput(double len) { int check; if (len <= 0 ) printf("\nnumbers entered must positive."); return check; }
this line:
check = validinput(); is missing parameter. suggest:
check = validinput( len ); of course, code should check returned value, not parameter value, call scanf() assure operation successful. in case, returned value should 1. other returned value indicate error occurred.
regarding validinput() function:
the variable check never initialized specific value. suggest:
int validinput(double len) { int check = 1; // indicate valid if (len <= 0 ) { check = 0; // indicate not valid printf("\nnumbers entered must positive.\n"); } return check; } note: trailing \n on call printf() force text output rather setting in internal stdout buffer until program exits, @ time output.
incorporating appropriate error checking main() function results in:
#include <stdio.h> // scanf(), printf() #include <stdlib.h> // exit(), exit_failure int validinput(double len); int main(void) { double len ; int check; printf("\nenter length of room in feet:"); if( 1 != scanf("%lf", &len) ) { // scanf failed perror( "scanf length of room, in feet, failed" ); exit( exit_failure ); } // implied else, scanf successful check = validinput( len ); printf( "the user input %s\n", (check)? "valid" : "not valid"); return 0; } // end function: main
Comments
Post a Comment