尝试平均链表的元素时出错
Error trying to average the elements of a linked list
我想计算链表中元素的平均值:
.h
class List
{
public:
List() { head = NULL; }
void insertNode(int);//inserare nod la sfarsitul unei liste
void printList();//afisare lista
void deleteNode(int);
void medie(float);
.cpp
void List::medie(float) {
int count = 0;
int sum = 0;
int media = 0;
Node* temp3 = head;
while (temp3 != NULL) {
count++;
sum += temp3->val;
temp3 = temp3->next;
}
media = (double)sum / count;
return media;
}
我收到这个错误:
return value type doesn't match the function type
不知道怎么修复
函数声明为 return 类型 void
void medie(float);
所以这意味着它 return 什么都没有。但是在函数定义中有一个带有非空表达式的 return 语句。
return media;
因此编译器发出错误信息。
另外函数参数没有在函数内部使用。它的声明没有意义。
在此声明中
media = (double)sum / count;
将变量 sum
转换为类型 double
没有什么意义,因为结果被分配给类型为 int
的变量 media
。
该函数应按以下方式声明
double medie() const;
并定义为
double List::medie() const
{
double sum = 0.0;
size_t count = 0;
for ( const Node *temp = head; temp != nullptr; temp = temp->next )
{
sum += temp->val;
++count;
}
return count == 0 ? 0.0 : sum / count;
}
我想计算链表中元素的平均值:
.h
class List
{
public:
List() { head = NULL; }
void insertNode(int);//inserare nod la sfarsitul unei liste
void printList();//afisare lista
void deleteNode(int);
void medie(float);
.cpp
void List::medie(float) {
int count = 0;
int sum = 0;
int media = 0;
Node* temp3 = head;
while (temp3 != NULL) {
count++;
sum += temp3->val;
temp3 = temp3->next;
}
media = (double)sum / count;
return media;
}
我收到这个错误:
return value type doesn't match the function type
不知道怎么修复
函数声明为 return 类型 void
void medie(float);
所以这意味着它 return 什么都没有。但是在函数定义中有一个带有非空表达式的 return 语句。
return media;
因此编译器发出错误信息。
另外函数参数没有在函数内部使用。它的声明没有意义。
在此声明中
media = (double)sum / count;
将变量 sum
转换为类型 double
没有什么意义,因为结果被分配给类型为 int
的变量 media
。
该函数应按以下方式声明
double medie() const;
并定义为
double List::medie() const
{
double sum = 0.0;
size_t count = 0;
for ( const Node *temp = head; temp != nullptr; temp = temp->next )
{
sum += temp->val;
++count;
}
return count == 0 ? 0.0 : sum / count;
}