Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 我的返回值有问题吗?_C_Function - Fatal编程技术网

C 我的返回值有问题吗?

C 我的返回值有问题吗?,c,function,C,Function,我必须制作一个函数,将“main”中提供的数组中的所有数字打印出来,在某个索引范围内,例如0-11或2-6等。然后该函数必须返回最后一个索引值的值 例如,给定数组 {8, 3, 6, 7, 9, 5, 3, 8, 6, 7, 4, 5} 如果我输入数字2和7,那么它应该打印f{679538},然后返回8。然而,它一直在返回6` 返回数据[low]时,low已递增1。low的最后一个值为high+1。while条件将失败,然后退出循环 因此,您的代码应该是: return data[high];

我必须制作一个函数,将“main”中提供的数组中的所有数字打印出来,在某个索引范围内,例如0-11或2-6等。然后该函数必须返回最后一个索引值的值

例如,给定数组

{8, 3, 6, 7, 9, 5, 3, 8, 6, 7, 4, 5}
如果我输入数字2和7,那么它应该打印f{679538},然后返回8。然而,它一直在返回6`

返回数据[low]时,low已递增1。low的最后一个值为high+1。while条件将失败,然后退出循环

因此,您的代码应该是:

return data[high];

如果要使用low变量返回最后一个值,只需执行以下操作

return data[--low];
因为在检查条件时,如果low的值大于high的值,则会失败

例如,如果输入low=2和high=7,则在上一次迭代中,low变为8,并打破循环,该循环现在指向活动数组中的值6,因为活动[8]==6

因此,我建议使用最后一个索引返回值

 return data[high];
只是 返回数据[高];
您将low递增到high之后的1,因此它将返回该值

想一想。。。循环直到low==high,在循环中打印数据[low],后跟low++。循环结束时,low的值是多少?如果您知道如何使用调试器,那么您可以在一分钟内逐行检查代码,并在比编写问题所需的时间更短的时间内找到所有代码你完全正确。我也应该注意到的。我现在感到很尴尬,但我很感谢你的帮助。这是正确的,除了当高低于低时的奇怪的,可能是错误的情况。但无论如何,这可能是未定义的行为。
 return data[high];