在C中搜索已排序的数组

Ale*_*lex 2 c

我正在研究C中的一个问题,我对它有一个快速的问题.问题如下:比如说,我给出了一些排序的整数数组a[i] = { 1, 2, 3, 3, 3 }.现在,我应该运行一个搜索给定整数的程序,返回第一次出现的位置以及该数组中该整数的出现次数.

所以,如果我正在搜索3那么我会第一次出现,a[2]并且有三次出现3.对于第一个发现第一次出现的部分,我可以简单地使用strcspn字符串头文件.但是,对于第二部分,是否有一个内置函数可以计算特定整数的实例数?

通过简单地增加一个计数器变量,我实际上可以用我的"赤手空拳"做到这一点.但是,我的教授给了我一个提示,返回类型应该是size_t,这表明可以使用一些内置函数.任何帮助,将不胜感激.

谢谢,亚历山大

Die*_*Epp 5

不,这样做没有标准功能.你的教授说返回类型应该是size_t,因为这是在计算内存中对象的大小或数量时使用的标准类型.在某些系统上,"unsigned int"类型可能不够大.