6-9 在数组中查找指定元素 (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

 

作者: 张泳

单位: 浙江大学城市学院

时间限制: 400 ms

内存限制: 64 MB

代码长度限制: 16 KB


编译器 (1)

int search( int list[], int n, int x )
{
	int i,index=-1;
	for(i=0;i<n;i++){
		if(x==list[i]){
			index=i;
			break;
		}
	}
	return index;
}

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,您的问题是如何用指针数组和二级指针实现一个颜色单词表的词索引,可以根据输入的字母返回以该字母开头的所有单词。我这里提供一个示例代码,供您参考: ```c++ #include <iostream> #include <cstring> using namespace std; const int MAX_WORD_NUM = 5; // 单词表中单词的数量 const int MAX_WORD_LEN = 20; // 单词的最大长度 // 颜色单词表 char words[MAX_WORD_NUM][MAX_WORD_LEN] = { "red", "green", "blue", "yellow", "black" }; // 指针数组,存放每个单词的首地址 char* word_ptrs[MAX_WORD_NUM]; // 二级指针,指向指针数组 char** word_index = word_ptrs; // 初始化指针数组 void init_index() { for (int i = 0; i < MAX_WORD_NUM; i++) { word_ptrs[i] = words[i]; } } // 查找指定字母开头的单词 void search_words(char c) { bool found = false; for (int i = 0; i < MAX_WORD_NUM; i++) { if (*word_index[i] == c) { cout << word_index[i] << endl; found = true; } } if (!found) { cout << "Not Found" << endl; } } int main() { init_index(); char c; cout << "请输入要查找的字母:" << endl; cin >> c; search_words(c); return 0; } ``` 这个示例代码中,我们首先定义了一个颜色单词表,包含五个表示颜色的英文单词。然后,我们使用指针数组 `word_ptrs` 存放每个单词的首地址,再用二级指针 `word_index` 指向指针数组。初始化时,我们将每个单词的首地址存放到指针数组中查找指定字母开头的单词时,我们遍历指针数组,判断每个单词的首字母是否等于指定字母,如果相等,则输出该单词,并将 `found` 标记设为 `true`。如果遍历完指针数组后 `found` 的值仍为 `false`,则输出 Not Found。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涛声依旧很冷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值