编写搜索函数,在M数组找到由name数组输出

#include<stdio.h>        

int M[]={1,2,3,4,5};  //定义一个int数组
char *name[]={"one","two","three","four","five"}; //一个char数组



int search(int key ,int a[] ,int length) //定义搜索函数
{
    int ret=-1;             
    for(int i=0;i<length;i++)  { //i来遍历整个数组
    if (key == a[i])     //判断key==M数组里的元素
    {      
    ret=i;  //等于就把结果给到ret
    break; //然后跳出for
    }       
}   
return ret; //ret返回给函数调用处,找到了返回数组里那个元素,没找到返回-1
}


int main() 
{   
int k=3;  //k是我们想找的数字
int z=search ( k, M,sizeof(M)/sizeof(M[0] )); //调用函数从M数组里找出K对应的值
if (z>-1)      //如果这个z大于-1,代表找到了
{
    printf("%s",name[z]); //就把这个值从name数组里输出来,3对应name数组three下标一致
}

return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用以下代码实现: ```python def fun(arr): arr.reverse() # 将数组按逆序存放 return arr if __name__ == '__main__': arr = [1, 2, 3, 4, 5] arr = fun(arr) print(arr) # 输出逆序后的数组 ``` 其中,`fun` 函数接收一个数组作为参数,使用 `reverse` 方法将数组按逆序存放,并返回逆序后的数组。在 `main` 函数中,先定义一个数组 `arr`,然后调用 `fun` 函数将其按逆序存放,并将结果赋值给 `arr`。最后,使用 `print` 函数输出逆序后的数组。 ### 回答2: 编写程序时,首先需要明确两个任务:将数组中的值逆序存放和输出结果。对于第一个任务,可以编写一个函数来实现,而对于第二个任务,则可以在主函数中调用该函数输出结果。 具体地说,编写一个名为fun的函数,该函数的参数为一个整型数组和该数组的长度,函数的作用是将该数组中的值按逆序存放。可以使用两个指针分别指向数组的首尾元素,然后交换它们的值,再将指针向中间移动进行下一次交换,直到指针相遇为止。下面是具体的代码实现: void fun(int arr[], int len) { int *p1 = arr, *p2 = arr + len - 1; while (p1 < p2) { int tmp = *p1; *p1 = *p2; *p2 = tmp; p1++; p2--; } } 在主函数中,可以定义一个整型数组并初始化,然后调用fun函数进行逆序存放,最后输出结果。下面是实现代码: int main() { int arr[] = {1, 2, 3, 4, 5}; int len = sizeof(arr) / sizeof(int); fun(arr, len); for (int i = 0; i < len; i++) { printf("%d ", arr[i]); } printf("\n"); return 0; } 在上述代码中,首先定义数组arr并初始化,然后计算出数组的长度len。接着调用fun函数将该数组逆序存放。最后使用for循环遍历数组,将每个元素输出,以验证逆序存放的结果。运行上述程序,输出结果为“5 4 3 2 1”,符合预期。 总之,编写fun函数将一个数组中的值按逆序存放,可以使用双指针法进行实现。主函数中调用该函数输出结果可以使用for循环遍历数组进行实现。 ### 回答3: 题目要求实现一个将数组中的值按逆序存放的函数,并在主函数输出结果。那么要解决这个问题,首先需要对题目要求进行分析。 从题目中可以看出,需要实现一个数组的逆序存放,也就是将数组中的值按照相反的顺序进行排列。因此,编写函数的过程中,需要对数组中的元素进行反转。使用C++语言,这个问题可以用函数来解决。 下面给出一个示例实现: ```C++ #include <iostream> void reverse_arr(int arr[], int len) { int i = 0, j = len - 1, tmp; while (i < j) { tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp; i++; j--; } } int main() { int arr[] = {1, 2, 3, 4, 5}; int len = sizeof(arr) / sizeof(arr[0]); std::cout << "original array: "; for (int i = 0; i < len; i++) { std::cout << arr[i] << " "; } std::cout << std::endl; reverse_arr(arr, len); std::cout << "reversed array: "; for (int i = 0; i < len; i++) { std::cout << arr[i] << " "; } std::cout << std::endl; return 0; } ``` 在上面的代码中,reverse_arr 函数接收一个数组数组长度作为参数,通过交换数组元素的位置,实现了对数组逆序的操作。在主函数中,首先输出原始数组,然后调用逆序函数进行操作,最后输出逆序后的数组。 这样,就完成了给定问题的求解。 总之,在解决问题时,我们需要仔细阅读题目的要求,并了解要解决的问题的本质。在这个基础上,利用语言特性和算法知识,编写出相应的代码实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值