I am supposed to be working on this problem that stores info in a 2x20 array of characters where the row indicates the month and the column indicates teh day. We have to read in from a file and then create a report that displays for each month and for the whole 2 month period..how many days were rainy, cloudy, and sunny. It also has to report which month had the largest num of rainy days...here's what i have so far:

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    const int NUM_ROWS = 3;
    const int NUM_COLS = 30;
    double forecast[NUM_ROWS][NUM_COLS];
    double rainyDays = 0;
    int rows, cols;
    ifstream datafile;
    
    datafile.open("RainOrShine.dat");
    if (!datafile)
        cout << "Error opening data file.\n";
    else
    {
        cout << "Three-Month Analysis\n\n";
        
        for(cols = 0; cols < NUM_COLS; cols++)
        {
            for(rows = 0; rows < NUM_ROWS; rows++)
            {
            }
        }
    }

can someone please help me to go in the right direction? I really appreciate it

Recommended Answers

All 3 Replies

I am supposed to be working on this problem that stores info in a 2x20 array of characters where the row indicates the month and the column indicates teh day. We have to read in from a file and then create a report that displays for each month and for the whole 2 month period..how many days were rainy, cloudy, and sunny. It also has to report which month had the largest num of rainy days...here's what i have so far:

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    const int NUM_ROWS = 3;
    const int NUM_COLS = 30;
    double forecast[NUM_ROWS][NUM_COLS];
    double rainyDays = 0;
    int rows, cols;
    ifstream datafile;
    
    datafile.open("RainOrShine.dat");
    if (!datafile)
        cout << "Error opening data file.\n";
    else
    {
        cout << "Three-Month Analysis\n\n";
        
        for(cols = 0; cols < NUM_COLS; cols++)
        {
            for(rows = 0; rows < NUM_ROWS; rows++)
            {
            }
        }
    }

can someone please help me to go in the right direction? I really appreciate it

Your opening a file, but never reading from it. I assume you want to read in the data here:

{
        cout << "Three-Month Analysis\n\n";
        
        for(cols = 0; cols < NUM_COLS; cols++)
        {
            for(rows = 0; rows < NUM_ROWS; rows++)
            {
                 // read in data?
            }
        }
    }

HOW to read in the data will depend on how the input file is set up.

commented: Perhaps they wanted you to guess the mystery format of the input file, and finish the code for them ;) +29
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    const int NUM_MONTHS = 3;
    const int NUM_DAYS = 30;
    const int NUM_TYPES= 3;
    char forecast[NUM_MONTHS][NUM_DAYS];
    int counts [NUM_MONTHS][NUM_TYPES];
    int rainyDays = 0;

    ifstream datafile;

    datafile.open("RainOrShine.txt");
    if (!datafile)
        cout << "Error opening data file.\n";
    else
    {

        // Read data and load arrary

        for(int month = 0; month < NUM_MONTHS; month++)
        { 
            for(int day = 0; day < NUM_DAYS; day++)

            {
                datafile >> forecast[month][day];

            }
            datafile.ignore();
        }

        for(int month = 0; month < NUM_MONTHS; month++)
        { 
            for(int day = 0; day < NUM_DAYS; day++)

            {
                cout << forecast[month][day] << '\t';

            }
            cout << endl;
        }        


    // intialize counts arrarys to 0

        for(int month = 0; month < NUM_MONTHS; month++)
        { 
            for(int type = 0; type < NUM_TYPES; type++)

            {
                counts[month][type] =0;

            }

        }

     // count all data   

        for(int month = 0; month < NUM_MONTHS; month++)
        { 
            for(int day = 0; day < NUM_DAYS; day++)
            {

                  if(forecast [month][day] =='R')
                  {
                        counts[month][0]++;
                  }      

                  if(forecast [month][day] =='S')
                  {
                        counts[month][1]++;
                  }


                  if(forecast [month][day] =='C')
                  {
                        counts[month][2]++;
                  }

            }

        }




        for(int month = 0; month < NUM_MONTHS; month++)
        { 
            for(int type = 0; type < NUM_TYPES; type++)

            {
                cout << counts[month][type] << '\t';

            }
            cout << endl;
        }





      // Determine month with largest number of rainy days






      // output report  

    cout << "Three-Month Analysis\n\n";      





    }


    system("pause");
    return 0;

}

This is what I have so far....

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.