鱼C论坛

 找回密码
 立即注册
查看: 4607|回复: 9

这个函数会不会返回-1

[复制链接]
发表于 2013-8-13 14:16:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
/*
        时间:2013年8月13日 13:55

        功能:在数组中线性查找某一特定元素
*/

#include <stdio.h>
#define SIZE 100

int linearSearch( const int array[], int key, int size );

int main( void )

{
        int a[ SIZE ];
        int x;
        int searchKey;
        int element;

        for ( x = 0; x < SIZE; x++ ){
                a[ x ] = 2 * x;
        } // end for

        printf( "Enter integer search key:\n" );
        scanf( "%d", &searchKey );

        element = linearSearch( a, searchKey, SIZE );

        if ( element != -1 ){
                printf( "Found value in element %d\n", element );
        } // end if
        else{
                printf( "Value not found\n" );
        } // end else

        return 0;
}

int linearSearch( const int array[], int key, int size )
{
        int n;

        for ( n = 0; n < size; ++n ){

                if ( array[ n ] == key ){
                        return n;
                } // end if
        } // end for

        return -1;
}

/*
        在VS2010的输出结果为:

Enter integer search key:
5
Value not found
请按任意键继续. . .

*/
                                大家帮忙看下最后定义的这函数,是不是总会返回-1,我懵了。。。

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-8-13 14:31:41 | 显示全部楼层
  是不是前面只要找到一个匹配的元素,后面这个return -1的语句就不会执行了?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-13 14:34:55 | 显示全部楼层

匹配到了就return了啊,肯定就不会返回-1了,如果没匹配到会返回-1的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-13 14:42:53 | 显示全部楼层
编程难 发表于 2013-8-13 14:34
匹配到了就return了啊,肯定就不会返回-1了,如果没匹配到会返回-1的

一个函数是不是只能有一个返回值?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-13 14:44:58 | 显示全部楼层
yuqiuwangzi 发表于 2013-8-13 14:42
一个函数是不是只能有一个返回值?

是的 函数执行到return 返回一个之后就结束了
return代表着函数的结束
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-13 14:47:21 | 显示全部楼层
牡丹花下死做鬼 发表于 2013-8-13 14:44
是的 函数执行到return 返回一个之后就结束了
return代表着函数的结束

感谢两位版主指点,我继续敲代码去:lol:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-13 14:49:51 | 显示全部楼层
yuqiuwangzi 发表于 2013-8-13 14:47
感谢两位版主指点,我继续敲代码去

不用谢
不过他是高手我是菜鸟 诶~~
对他我真的只能膜拜啊  
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-13 14:52:10 | 显示全部楼层
函数“int linearSearch( const int array[], int key, int size )”不会总返回-1,当 if ( array[ n ] == key )成立的时候,就执行return n,函数结束。

//附上:你在main函数中,给数组a赋偶数值,所以searchKey=5是奇数,不满足if ( array[ n ] == key )所以linearSearch函数返回-1.如果searchKey=0,2,4,……198.应该都会满足。
BaiduShurufa_2013-8-13_14-53-26.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-13 14:52:52 | 显示全部楼层
yuqiuwangzi 发表于 2013-8-13 14:31
是不是前面只要找到一个匹配的元素,后面这个return -1的语句就不会执行了?

是的,你说的没错
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-13 14:56:01 | 显示全部楼层
苹果沃珂 发表于 2013-8-13 14:52
是的,你说的没错

嗯嗯,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-17 07:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表