This question already has an answer here:
Closed 3 years ago.
Invalid operands to binary in my 'NumberSize' function
(1个答案)
我已经创建了一个函数,它将比较链接列表中的数字,以确定哪个数字最小,哪个数字最大。我知道
我如何调用
如果在末尾提供
你忘了在
(1个答案)
我已经创建了一个函数,它将比较链接列表中的数字,以确定哪个数字最小,哪个数字最大。我知道
FirstNumber = determine->newNum;
指向列表中的当前数字。我如何调用
SecondNuumber = ?;
来获取列表中的下一个号码?typedef struct A_NewNumber {
struct A_NewNumber *next;
double newNum;
} NewNumber;
void NumberSize(NewNumber *start){
NewNumber *determine = start;
double SecondNumber =0;
double FirstNumber = 0;
while(determine){
//the number from the current node
FirstNumber = determine->newNum;
SecondNuumber = next->newNum;
if(FirstNumber < SecondNumber){
printf("The biggest number is:\n", SecondNumber);
}else{
printf("The smallest number is:\n", FirstNumber);
}
}
}
最佳答案
您可以使用newNum
访问下一个节点中的determine->next->newNum
,并通过以下方式更改while
循环:
while(determine->next != NULL){
//the number from the current node
FirstNumber = determine->newNum;
SecondNuumber = determine -> next->newNum;
if(FirstNumber < SecondNumber){
printf("The biggest number is:%lf\n", SecondNumber);
printf("The smallest number is:%lf\n", FirstNumber);
}else{
printf("The biggest number is:%lf\n", FirstNumber);
printf("The smallest number is:%lf\n", SecondNumber);
}
determine = determine -> next;//to traverse along the list
}
如果在末尾提供
determine = determine -> next;
是遍历或沿着链表移动所必需的,否则您将被困在同一个位置,这将使您的循环成为一个无限循环你忘了在
printf()
中提到格式说明符10-06 01:34