'int accident [5]'声明会影响参数错误

时间:2013-04-28 18:07:18

标签: c++ function parameters shadow

我是C ++的新手,无法找到解决此错误的方法。据我所知,我没有超载任何变量来创建与命名的冲突(这是我能在网上找到的最接近的事情)。任何帮助将不胜感激。

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

1 个答案:

答案 0 :(得分:17)

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

accidents

中有两个findLowest