gpt4 book ai didi

c++ - 从不兼容的类型分配给 Double?

转载 作者:行者123 更新时间:2023-11-28 02:10:44 24 4
gpt4 key购买 nike

编程新手,无法使用结构将数组传递给函数。有任何想法吗?编译器生成错误“Assigning to Double from incompatible type weather”。 提前致谢/

  struct Weather
{
double TotalRainfall[12];
double HTemperature[12];
double LTemperature[12];
double AverageTemperature[12];

};

Weather AverageTemp(Weather *W, int size)
{

for(int i = 1;i<=12;i++)
{
return W[i].HTemperature[i]+W[i].LTemperature[i];


}

}

int main()
{
Weather W[12];
int size =12;

for(int i = 1;i<=12;i++)
{
cout << "Enter Total Rainfall in " << i << " month";
cin >> W[i].TotalRainfall[i];

cout << " Enter the highest temperature " << i << " month";
cin >> W[i].HTemperature[i];

cout << " Enter the Lowest temperature " << i << " month";
cin >> W[i].LTemperature[i];


}

for(int i = 1;i<=12;i++)
{
W[i].AverageTemperature[i]= AverageTemp(W, size);
}

最佳答案

您的代码中有几个错误。让我们从不兼容类型分配 double 的错误开始。 AverageTemp 在您的示例中是一种返回 Weather 类型的方法。我假设您打算返回一个 double 值。

另一个问题是您要输入每个月的总降雨量、最高和最低温度以及平均温度。根据我的测量,您将需要 12*4 或 48 个 double 。相反,您有一个包含 12 个 Weather 结构的数组,每个结构包含 48 个 double 或 576 个 double !我猜你不打算这样做,所以我简化了你的例子,只使用一个 Weather 结构。现在我们使用一个 Weather 实例并将该实例传递给 AverageTemp 作为引用(因此我们不制作拷贝)。

第三个问题有点微妙,但你肯定在解决了前两个问题后就发现了它。您不能使用索引 n 访问 n 数组的第 n 个元素。换句话说,第一个元素是用索引 0 访问的,因为数组是从零开始访问的。这意味着每个循环 i 从 1 开始到 12 结束都会导致数字 12 出现丑陋的错误,因为 13th 元素不在您的数组中。大多数程序员让索引变量从 0 开始计数,但不等于限制,因此您永远不必担心会超过限制。结果,我补偿了月份数的显示。

新代码如下:

// ...

double AverageTemp(Weather &w, int index)
{
return (w.HTemperature[index]+w.LTemperature[index])/2.0;
}

int main()
{
Weather w;
int size =12;

for(int i = 0;i<12;i++)
{
cout << "Enter Total Rainfall in " << i+1 << " month" << endl;
cin >> w.TotalRainfall[i];

cout << " Enter the highest temperature " << i+1 << " month" << endl;
cin >> w.HTemperature[i];

cout << " Enter the Lowest temperature " << i+1 << " month" << endl;
cin >> w.LTemperature[i];
}

for(int i = 0;i<12;i++)
{
w.AverageTemperature[i]= AverageTemp(w, i);
}
}

如果您有任何问题,请提问!重要的是您了解这些概念而不是拥有工作代码,因为它将在未来更好地为您服务。

关于c++ - 从不兼容的类型分配给 Double?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35845921/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com