演習8-2配列内の指定された要素を見つける(15ポイント)

この質問では、配列内の指定された要素を見つけるための単純な関数の実装が必要です。

関数インターフェイスの定義:

int search( int list[], int n, int x );

その中にlist[]は、ユーザーから渡された配列、n(≥0)はlist[]中央の要素の数、xは検索対象の要素があります。見つかった場合

この関数searchは、対応する要素の最小インデックスを返します(インデックスは0から始まります)。それ以外の場合は、-1を返します。

審判のテスト手順の例:

#include <stdio.h>
#define MAXN 10

int search( int list[], int n, int x );

int main()
{
    
    
    int i, index, n, x;
    int a[MAXN];

    scanf("%d", &n);
    for( i = 0; i < n; i++ )
        scanf("%d", &a[i]);
    scanf("%d", &x);
    index = search( a, n, x );
    if( index != -1 )
        printf("index = %d\n", index);
    else
        printf("Not found\n");

    return 0;
}

/* 你的代码将被嵌在这里 */

入力例1:

5
1 2 2 5 4
2

出力サンプル1:

index = 1

入力例2:

5
1 2 2 5 4
0

出力サンプル2:

Not found

回答:

int search( int list[], int n, int x )
{
    
    
	int *p = list; //定义指针p指向list的首地址
	int i; //循环变量
	int index = -1; //相应元素的最小下标
	
    /*循环遍历数组,寻找有无相应元素*/
	for (i = 0; i < n; i++, p++)
	{
    
    
		if ( *p == x) //如果找到下标给index,退出循环
		{
    
    
			index = i;
			break;
		}
	}

    return index; //返回index的值给search

}

おすすめ

転載: blog.csdn.net/qq_44715943/article/details/114654968