Re: this C program any better?

  • From: "Jackie McBride" <abletec@xxxxxxxxx>
  • To: programmingblind@xxxxxxxxxxxxx
  • Date: Sat, 27 Oct 2007 20:51:29 -0700

John, I, like Ken, am curious whether u actually run your code
because, if u did, I think you'd see that it wouldn't fly.

Let's discuss a few points.
1)  A struct is a data type.  As such, u do stuff like:
struct employee{
int employeeNumber;
float hours_worked;
float gross_pay;
float overtime;
} emp;

Or u can declare it later by saying struct employee emp;

Employee is a tag, while emp is an instance of the structure & is used
to reference it.  If u want 5 employees, then, it's declared as
}emp[5]; or later in the program as struct employee emp[5];

U reference variables of a structure by saying stuff like
emp.hours_worked;  the period or dot is called the struct operator.
If u wanna reference the 3rd employee in an array of structures of
instance emp, then you'd say emp[2].hoursWorked (arrays are 0-based,
remember).

2)  This is a really hard concept for beginner C programmers to grasp
(believe me, I know this!), but in the C programming language, with
regard to functions, the right hand literally does not know what the
left hand doeth.  U can, for example, do the following:

void change_i();

main()
{
int i;
char ch;

i = 10;
change_i();
printf("in main, i = " "%d\n",i);
ch = getche();
return 0;
}

void change_i(void)
{
int i;
i = 20;
printf("in change_i, i = " "%d\n",i);
}

In main, i=10, even after the code goes to change_i.  I in main & i in
change_i, though the name is identical, are 2 entirely different
kettles of fish.  Run the code & see for yourself.

In order to make the above function actually change the value of i in
main, a statement at the end of change_i would say
return i;
& main would say
i = change_i();  that way the value is passed back to main.

To initialize your data, u could do something like:
float initialize(void)
int i;
float hours_worked[5] = { 40, 52, 37, 45, 40 };;;
return hours_worked;
}

I recommend u download & have a look at sam's teach yourself c in 21 days, 
available from:
http://ftp.build.bg/Books_and_Help/Books/_programming/

But u really do need 2 start running your code & checking its output.

On 10/27/07, John Miller <n1umj@xxxxxxxxxxx> wrote:
> Yeah, I know, I sent it in another email. That's what I get for not sleeping
> last night. I forget to include things in emails. Someday I'll start
> sleeping well again. When is the question. Hopefully in 2 or 3 weeks when
> this class is over though I think there's more to it than that.
> ----- Original Message -----
> From: "Jackie McBride" <abletec@xxxxxxxxx>
> To: <programmingblind@xxxxxxxxxxxxx>
> Sent: Saturday, October 27, 2007 5:00 PM
> Subject: Re: this C program any better?
>
>
> > Couldn't tell u.  It's not there.
> >
> > On 10/27/07, John Miller <n1umj@xxxxxxxxxxx> wrote:
> >> I'm wondering if this code is any better than the last one? I guess I'm
> >> at
> >> the point where I have to send it in no matter what but I figured I'd get
> >> any help I could before I do.
> >>
> >>
> >> __________
> >> View the list's information and change your settings at
> >> //www.freelists.org/list/programmingblind
> >>
> >>
> >
> >
> > --
> > Jackie McBride
> > Please join my fight against breast cancer
> > <http://teamacs.acsevents.org/site/TR?px=1790196&pg=personal&fr_id=3489>
> > & Check out my homepage at:
> > www.abletec.serverheaven.net
> > __________
> > View the list's information and change your settings at
> > //www.freelists.org/list/programmingblind
> >
>
> __________
> View the list's information and change your settings at
> //www.freelists.org/list/programmingblind
>
>


-- 
Jackie McBride
Please join my fight against breast cancer
<http://teamacs.acsevents.org/site/TR?px=1790196&pg=personal&fr_id=3489>
& Check out my homepage at:
www.abletec.serverheaven.net
__________
View the list's information and change your settings at 
//www.freelists.org/list/programmingblind

Other related posts: