在已知数表中找出第一个与指定值相等的元素的下标和指针。这个实例还是比价简单的。
我的思路是,首先创建一个struct结构,该结构中有两个成员变量,一个是数组元素的下标,一个是数组元素的指针值,当程序进程查找的时候,将找到的结果保存到该结构上。下面是我的程序的实现部分:
~~~
#include <stdio.h>
#define SIZE 100
/**
* @brief The element struct
* 元素的结构,包括元素的下标和元素的指针
*/
struct element{
int subScript;
int p;
};
/**
* @brief Search 在数组array中,寻找第一个与key相等的元素的下标和指针
* @param key 要寻找第一个与key相等的元素
* @param array 要被寻找的数组
* @param n 数组array中有几个元素
* @return 返回含有元素下标和指针的结构
*/
struct element Search(int key,int array[],int n){
int i = 0;
struct element ele;
for(i = 0;i < n;i++){
if(key == array[i]){
ele.subScript = i;
ele.p = &array[i];
return ele;
}
}
return ele;
}
/**
* 在已知数表中找出第一个与指定值相等的元素的下标
* 和指针
* @brief main
* @return
*/
int main(void)
{
int n;
int i;
int key;
int array[SIZE];
printf("Please enter the length of the array:\n");
scanf("%d",&n);
printf("Please enter the lements of the array:\n");
for(i = 0;i < n;i++){
scanf("%d",&array[i]);
}
printf("Please enter the key for searching:\n");
scanf("%d",&key);
struct element searched = Search(key,array,n);
//查看是否已经查到匹配的元素
if(searched.p == 0){
printf("There is no element equals to key!!\n");
}else{
printf("The subscript of the element is %d.\n",searched.subScript);
printf("The pointer of the element is %d.\n",searched.p);
}
return 0;
}
~~~
下面是我的程序运行的截图:
![这里写图片描述](https://box.kancloud.cn/2016-05-24_5743c07566375.jpg "")
- 前言
- 实例一:HelloWorld
- scanf函数学习
- 实数比较
- sizeof()保留字获取类型的大小
- 自增/自减学习
- C学习if条件判断和for循环
- C实现的九九乘法表
- C实现一个比较简单的猜数游戏
- 使用C模拟ATM练习switch..case用法
- 记录一个班级的成绩练习一维数组
- C数组实现矩阵的转置
- C二维数组练习
- 利用数组求前n个质数
- C实现万年历
- C实现数组中元素的排序
- C实现任意进制数的转化
- C判断一个正整数n的d进制数是否是回文数
- C使用递归实现前N个元素的和
- 钢材切割问题
- 使用指针比较整型数据的大小
- 指向数组的指针
- 寻找指定元素
- 寻找相同元素的指针
- 整数转换成罗马数字
- 字符替换
- 从键盘读入实数
- C实现字符行排版
- C实现字符排列
- C实例--判断一个字符串是否是回文数
- 通讯录的输入输出
- 扑克牌的结构定义
- 使用“结构”统计学生成绩
- 报数游戏
- 模拟社会关系
- 统计文件中字符个数
- C实现两个文件的内容输出到同一个屏幕