NumberSize 函数中的混淆

标签 c

<分区>

我创建了一个函数,用于比较链表中的数字以确定哪个数字最小,哪个数字最大。我知道 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);
        }
    }
}

最佳答案

您可以使用 determine->next->newNum 访问下一个节点中的 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()

  • 中提及格式说明符

关于NumberSize 函数中的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39432337/

相关文章:

c - 在递归函数中使用 __FILE__ 和 __LINE__

c - -Win兼容指针类型和枚举

c - 查找素数的程序打印出两个

c - 指针、数组和函数

c - 重新分配(): getting an invalid pointer error in C

c - 指针和双指针练习

c++ - 下采样图像

c++ - OpenGL 更改可分离着色器程序中的不同位置

c - strcpy 段错误

c++ - 需要帮助调试 “attribute parser”! HackerRank的C++问题