Declaration of 'int accidents[5]' shadows a parameter error

c++, function, parameters, shadow

Solution

        int findLowest(int accidents[])
    //                      ^^
        {
         const int ARRAY_SIZE = 5;
         string lowestRegion;
         int accidents[ARRAY_SIZE];
 //               ^^

You have two `accidents` in your `findLowest`

Problem

I'm new to C++ and can't find any way around this error. As far as I know I'm not overloading any variables to create a conflict with naming(which was the closest thing to a cause i could find online). Any help would be much appreciated. ``` #include <iostream> #include <iomanip> #include <string> using namespace std; int getNumAccidents(string); int findLowest(int accidents[]); int main() { const int ARRAY_SIZE = 5; int input; int accidents[ARRAY_SIZE]; int counter = 0; string regions[ARRAY_SIZE] = {"North", "South", "East", "West", "Central"}; string name; string lowestRegion; int lowest = 1000000000; while (counter < ARRAY_SIZE) { name == regions[counter]; accidents[counter] = getNumAccidents(name); counter++; } findLowest(accidents); system("PAUSE"); return 0; } int getNumAccidents(string name) { int input; validate: cout<<"Enter the number of accidents that took place in the "<<name<<" region in the last year:"<<endl; cin>>input; if (input < 0) { system("CLS"); cout<<"Invalid input: the number of accidents can not be negative."; goto validate; } return input; } int findLowest(int accidents[]) { const int ARRAY_SIZE = 5; string lowestRegion; int accidents[ARRAY_SIZE]; string regions[ARRAY_SIZE] = {"North", "South", "East", "West", "Central"}; int lowest = 0; int counter = 0; while (counter < ARRAY_SIZE) { if (accidents[counter] < lowest) { lowest = accidents[counter]; lowestRegion = regions[counter]; } counter++; } cout<<"The "<<lowestRegion<<" region had the least accidents in the past year at " <<lowest<<" accidents."<<endl; } ```

Original source