Stroustrup exercise 7 section 5.9 (using struct)

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • arnuld

    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_ar r(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_ar r(arr_struct);
    }

  • Victor Bazarov

    #2
    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_ar r(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_ar r(arr_struct);
    }
    V
    --
    Please remove capital 'A's when replying by e-mail
    I do not respond to top-posted replies, please don't ask


    Comment

    • mlimber

      #3
      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_ar r(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_ar r(arr_struct);
      }
      Besides that, the comments from my response to your post on the array
      version apply here, too.

      Cheers! --M

      Comment

      • arnuld

        #4
        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.

        Comment

        • arnuld

          #5
          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! ;-)

          Comment

          • Earl Purple

            #6
            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 }
            };

            Comment

            • arnuld

              #7
              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".

              Comment

              Working...