【问题标题】:How to make "if" condition stand for all struct items in C [closed]如何使“if”条件代表C中的所有结构项[关闭]
【发布时间】:2015-09-03 18:51:30
【问题描述】:

我想知道如何让“if”条件代表节点中的所有结构项。它只计算 1 个项目并退出循环。这是代码。我正在尝试创建一个检查数据库中某个项目的到期日期的函数。请忽略保加利亚文。

LIST *sortPr(LIST *pFirst) {

    LIST *b = NULL, *p;

    LIST *b1, *bus1 = NULL;
    int yearcur = 1;
    printf("Vuvedete teku6ta godina");
    scanf("%d", &yearcur);
    if (pFirst == NULL)
    {
        setcolor(COL_RED);
        printf("Списъкът е празен\n");
        system("pause");
        exit(4);
    }
    for (p = pFirst; p != NULL; p = p->pNext)
    {
        if ((yearcur - p->body.year) > p->body.expd)
        {

                b = p;



        }

        b1 = newElement(bus1, b->body);
        return b1;
    }
}

【问题讨论】:

  • 嗯?你是什​​么意思,“代表所有结构项目?”

标签: c arrays pointers struct


【解决方案1】:

这是因为你的 for 循环中有 return b1。这将在第一次迭代后终止它,并从函数中返回 b1

LIST *sortPr(LIST *pFirst) {
    LIST *b = NULL, *p;
    LIST *b1, *bus1 = NULL;
    ...
    for (p = pFirst; p != NULL; p = p->pNext) {
        ...

        // This would return b1 during the first iteration itself
        return b1;
    }
}

【讨论】:

  • 这似乎不是没有让所有结构项都通过 if 语句的原因。
猜你喜欢
  • 2021-03-20
  • 2018-02-20
  • 2017-03-10
  • 1970-01-01
  • 2022-01-24
  • 2018-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多