Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   C++ (http://www.velocityreviews.com/forums/f39-c.html)
-   -   Stroustrup exercise 7 section 5.9 (using struct) (http://www.velocityreviews.com/forums/t458256-stroustrup-exercise-7-section-5-9-using-struct.html)

 arnuld 11-08-2006 02:29 PM

Stroustrup exercise 7 section 5.9 (using struct)

i do not have any problem here. i solved the problem but i wanted to
know the views of you. please look at it from a newbie's perspective:

problem: define a table with names of months of the year & the number
of days in each month. write out that table. do this using: "a struct &
an array of that struct"

this is the solution i have created:

#include <iostream>
#include <string>

struct month_day {
std::string month;
int days;
};

// creating 12 structures
month_day md0 = {"Jan", 31};
month_day md1 = {"Feb", 28};
.................................................
month_day md11 = {"Dec", 31};

month_day arr_struct[arr_size] =
{md0, md1, md2, md3, md4, md5, md6, md7, md8, md9, md10, md11};

void print_struct_arr(month_day as[])
{
for(int i=0; i < arr_size; ++i)
std::cout << as[i].month << "\t" << as[i].days << "\n";
}

int main() {
print_struct_arr(arr_struct);
}

 Victor Bazarov 11-08-2006 02:33 PM

Re: Stroustrup exercise 7 section 5.9 (using struct)

arnuld wrote:
> i do not have any problem here. i solved the problem but i wanted to
> know the views of you. please look at it from a newbie's perspective:
>
> problem: define a table with names of months of the year & the number
> of days in each month. write out that table. do this using: "a struct
> & an array of that struct"
>
> this is the solution i have created:
>
> #include <iostream>
> #include <string>
>
> struct month_day {
> std::string month;
> int days;
> };
>
> // creating 12 structures
> month_day md0 = {"Jan", 31};
> month_day md1 = {"Feb", 28};
> ................................................
> month_day md11 = {"Dec", 31};
>
> month_day arr_struct[arr_size] =
> {md0, md1, md2, md3, md4, md5, md6, md7, md8, md9, md10, md11};

There is duplication of data here. What for? Couldn't you simply
initialise the array elements using the brace notation?

>
> void print_struct_arr(month_day as[])
> {
> for(int i=0; i < arr_size; ++i)
> std::cout << as[i].month << "\t" << as[i].days << "\n";
> }
>
>
> int main() {
> print_struct_arr(arr_struct);
> }

V
--

 mlimber 11-08-2006 02:49 PM

Re: Stroustrup exercise 7 section 5.9 (using struct)

Victor Bazarov wrote:
> arnuld wrote:
> > i do not have any problem here. i solved the problem but i wanted to
> > know the views of you. please look at it from a newbie's perspective:
> >
> > problem: define a table with names of months of the year & the number
> > of days in each month. write out that table. do this using: "a struct
> > & an array of that struct"
> >
> > this is the solution i have created:
> >
> > #include <iostream>
> > #include <string>
> >
> > struct month_day {
> > std::string month;
> > int days;
> > };
> >
> > // creating 12 structures
> > month_day md0 = {"Jan", 31};
> > month_day md1 = {"Feb", 28};
> > ................................................
> > month_day md11 = {"Dec", 31};
> >
> > month_day arr_struct[arr_size] =
> > {md0, md1, md2, md3, md4, md5, md6, md7, md8, md9, md10, md11};

>
> There is duplication of data here. What for? Couldn't you simply
> initialise the array elements using the brace notation?
>
> >
> > void print_struct_arr(month_day as[])
> > {
> > for(int i=0; i < arr_size; ++i)
> > std::cout << as[i].month << "\t" << as[i].days << "\n";
> > }
> >
> >
> > int main() {
> > print_struct_arr(arr_struct);
> > }

Besides that, the comments from my response to your post on the array
version apply here, too.

Cheers! --M

 arnuld 11-08-2006 03:21 PM

Re: Stroustrup exercise 7 section 5.9 (using struct)

> Victor Bazarov wrote:

> There is duplication of data here. What for?

i know but i was not able to find a way out.

> Couldn't you simply
> initialise the array elements using the brace notation?

yes i could.

 arnuld 11-08-2006 03:22 PM

Re: Stroustrup exercise 7 section 5.9 (using struct)

> Besides that, the comments from my response to your post on the array
> version apply here, too.

thanks buddy :-)

> Cheers! --M

ok i say, cheers! ;-)

 Earl Purple 11-08-2006 04:23 PM

Re: Stroustrup exercise 7 section 5.9 (using struct)

arnuld wrote:
> > Victor Bazarov wrote:

>
> > There is duplication of data here. What for?

>
> i know but i was not able to find a way out.
>
> > Couldn't you simply
> > initialise the array elements using the brace notation?

>
> yes i could.

const month_day arr_struct[] =
{
{ "Jan", 31 },
{ "Feb", 28 },
{ "Mar", 31 },

// etc to

{ "Dec", 31 }
};

 arnuld 11-08-2006 04:40 PM

Re: Stroustrup exercise 7 section 5.9 (using struct)

> const month_day arr_struct[] =
> {
> { "Jan", 31 },
> { "Feb", 28 },
> { "Mar", 31 },
>
> // etc to
>
> { "Dec", 31 }
> };

thanks & Stroustrup said in problem statement that it *must* be an
"array of struct".

 All times are GMT. The time now is 08:14 PM.