繁体   English   中英

只获取没有 printf 的返回值

[英]Get only return value without printf

我正在为大学作业编写一个程序,其中一个必需的函数需要有条件地打印一个值,然后如果它打印一个值则返回 1,如果它没有打印一个值则返回 0。 在另一个所需的 function 中,我有一个可能会或可能不会打印的值数组。 如果没有打印这些值中的任何一个,则不得打印所有这些值。 问题是,我需要检查数组以查看是否使用第一个 function 不会打印其中的任何一个。 如果数组中的第一个值不会被打印,这不会是一个问题,但是如果前几个将被打印,然后其中一个不会被打印,它会打印前几个,同时检查是否有任何一个不会被打印打印出来的,不符合要求。

我知道这有点令人困惑,所以这里有一些伪代码:

short function1(value) {
    short retVal = 0;
    if (valueIsGood) {
        printf(value);
        retVal = 1;
    }
    return retVal;
}

short function2(array[]) {
    int i;
    for (i = 0; i < sizeof(array); i++) {
        if (function1(array[i]) == 0) {
            return "invalid";
        }
    }
}

如果数组有值 { goodValue1, goodValue2, badValue1, goodValue3 },它会在返回无效之前打印 goodValue1 和 goodValue2。 我想要一种方法让它返回无效。 谢谢。

以打开/关闭标志的方式思考。 由于这是一项作业,我将仅以伪代码向您展示算法。

在第一种情况下,伪代码是:

set flag off
for each line
    if line is printable
        print line
        set flag on
    endif
endfor
if flag is on
    return 1
else
    return 0
endif

所以现在这将帮助您构建第二个 function

set flag on
for each line
    if line is not printable
        set flag off
    endif
endfor
if flag is on
   for each line
      print line
   endfor
else
    return 0
endif

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM