返回函数中的所有值

时间:2015-03-01 00:17:33

标签: c

这可能是一件容易的事,但我的大脑却被这一切所震撼。对于下面的函数,我想返回所有等于2的岩石而不仅仅是第一个岩石。这只是打印出第一块等于2的岩石。 提前致谢

void view_drilled_rocks()
{
    int i;
    for (i=0;i<totalRocks;i++){
        if (rocks[i].rock_completed==2){
                printf("Rock No.  Geoligist  Drill(Y/N)    Due date or comp date\n");
                printf("%d \t   %s  \t %d  \t%s", rocks[i].rock_rover_number, rocks[i].geoligist, rocks[i].rock_completed , rocks[i].due_date);
            return 0;
        }
    }

}

3 个答案:

答案 0 :(得分:3)

从块中删除return 0;语句。

此外,void函数不应return一个值。

答案 1 :(得分:1)

return语句不应位于if块内。此外,您的函数的返回类型是void。它不应该返回一个值。

答案 2 :(得分:0)

  1. 如果您要打印所有岩石,请删除之前提到的return 0;
  2. 如果你想返回匹配的摇滚对象,你必须创建找到的对象的'集合'(例如:数组)并将它们返回到你的函数中(不使用void并真正返回一些东西)。