By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
454,504 Members | 1,724 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 454,504 IT Pros & Developers. It's quick & easy.

Passing Variables between functions

P: n/a
I don't want to use global variables to do this, but I'm stumped on how
to pass a variable between one function to another, so if someone could
help out, that'd be appreciated. Here's an example of what I need to
accomplish:

(note: Don't worry about whether or not the functions work properly,
but if you want to comment, I won't stop you.)

void playGame ()
{
int sum; /* sum of rolled dice */
int myPoint; /* point earned */
int balance; /* user's current balance */
..
..
..
}
void getWager()
{
int wager;

printf("Enter wager: ");
scanf("%d", &wager);

while (wager > balance || wager <= 0)
{
printf("Your wager must not exceed your current balance.\n");
printf("Enter a new wager: ");
scanf("%d", &wager);
}
}

Nov 15 '05 #1
Share this Question
Share on Google+
3 Replies


P: n/a

"tigrfire" <bb******@gmail.com> wrote > void playGame ()
{
int sum; /* sum of rolled dice */
int myPoint; /* point earned */
int balance; /* user's current balance */
.
.
.
}
void getWager()
{
int wager;

printf("Enter wager: ");
scanf("%d", &wager);

while (wager > balance || wager <= 0)
{
printf("Your wager must not exceed your current balance.\n");
printf("Enter a new wager: ");
scanf("%d", &wager);
}
}


Two ways

1)

int getWager()
{
int wager;

/* code to print message etc */
scanf("%d", &wager);

return wager.
}

in the caller

theWager = getWager();

2)

/*
get the wager, return 0 on success, -1 on fail
*/
int getWager(int *wager)
{
int result;
/* code to print message goes here */

result = scanf("%d", wager);

/* scanf tells you how many fields were read successfully*/
if(result == 1)
return 0;
else
return -1;
}

/* in the caller */

int ok;
int wager;

ok = getWager(&wager);
if(ok == -1)
{
/* code to handle error goes here. User didn't enter a valid wager */
}
The second way is better, but the first will work.
Nov 15 '05 #2

P: n/a
On Sun, 06 Nov 2005 12:33:54 -0800, tigrfire wrote:
I don't want to use global variables to do this, but I'm stumped on how
to pass a variable between one function to another, so if someone could
help out, that'd be appreciated. Here's an example of what I need to
accomplish:

(note: Don't worry about whether or not the functions work properly,
but if you want to comment, I won't stop you.)

void playGame ()
{
int sum; /* sum of rolled dice */
int myPoint; /* point earned */
int balance; /* user's current balance */
getWager(balance);

You needn't call it with a variable named "balance" - any expression that
has int type or can implicitly be safely converted to int is fine.

This is pretty fundamental stuff and comp.lang.c isn't the best place to
learn it. A text-book or online course would be better.
.
.
.
}
void getWager()
void getWager(int balance)
{
int wager;

printf("Enter wager: ");
scanf("%d", &wager);

while (wager > balance || wager <= 0)
{
printf("Your wager must not exceed your current balance.\n");
printf("Enter a new wager: ");
scanf("%d", &wager);
}
}


--
http://members.dodo.com.au/~netocrat
Nov 15 '05 #3

P: n/a
tigrfire wrote:
I don't want to use global variables to do this, but I'm stumped on how
to pass a variable between one function to another, so if someone could
help out, that'd be appreciated. Here's an example of what I need to
accomplish:

(note: Don't worry about whether or not the functions work properly,
but if you want to comment, I won't stop you.)

void playGame ()
{
int sum; /* sum of rolled dice */
int myPoint; /* point earned */
int balance; /* user's current balance */
.
.
.
}
void getWager()
{
int wager;

printf("Enter wager: ");
scanf("%d", &wager);

while (wager > balance || wager <= 0)
{
printf("Your wager must not exceed your current balance.\n");
printf("Enter a new wager: ");
scanf("%d", &wager);
}
}

This is one of the first things you should have been taught when
learning C. Functions are usually taught in the third or fourth class.
You are therefore obviously not a C programmer. This is BASIC stuff.

A function is:

return_type function_name (parameter_type parameter, ...) {
function_body
}
Therefore passing a value into a function:

getWager(balance);

getting a value out of the function:

wager = getWager();

pass a value in and get a value out:

wager = getWager(balance);

Once you understand this, then you can start playing with pointers.

Nov 15 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.