我想寫一個程序,檢查矩形的尺寸是否大於零。在無效函數中檢查我嘗試使用數組來檢查值並使用字符串來顯示用戶錯誤的維度。我得到一個錯誤,它「不能轉換參數1‘雙[6]’到‘雙’。函數來檢查尺寸值,它是什麼
#include <iostream>
#include <string>
using namespace std;
void Check(double, string);
int main()
{
const int size = 3;
double DimArray[size];
string MyArray[size] = { "Height", "Length", "Width"};
cout << "Enter the height, length and width of rectangle: ";
cin >> DimArray[0] >> DimArray[1] >> DimArray[2];
Check(DimArray, MyArray);
return 0;
}
void Check(double arr1[], string arr2[])
{
int i;
for (i = 0; i < 4; i++)
{
if (arr1[i] <= 0)
cout << "Your entered " << arr2[i] << "is less than zero!";
cout << "Please enter a valid number --> ";
cin >> arr1[i];
}
}
您正在傳遞包含3個元素的數組,但「Check」函數正在迭代4個元素。訪問數組邊界外的元素會導致[未定義的行爲](http://en.wikipedia.org/wiki/Undefined_behavior)。我建議使用'std :: array'或'std :: vector' **或**將數組的大小傳遞給'Check'。 –