文章目录
- [1 题目](#1 题目)
- [2 题解](#2 题解)
1 题目
假设有一个顺序表 L,其存储的所有数据元素均为不重复的正数,查找L中值为e的数据元素,若找到则返回其下标,若找不到则返回-1。
2 题解
C语言代码:
c
/*
假设有一个顺序表 L,其存储的所有数据元素均为不重复的正数,查找L中值为e的数据元素,若找到则返回其下标,若找不到则返回-1。
*/
#include <stdio.h>
#include <stdlib.h> //包含了随机数生成函数 rand() 和种子设置函数 srand()。
#include <time.h> // 包含了时间处理函数,用于获取当前时间作为种子。
#define MaxSize 50
typedef struct L {
int data[MaxSize];
int length;
}SqList;
int Search_e(SqList L, int e) {
printf("%d", L.length);
for (int i = 0; i < L.length; i++) { // 遍历顺序表 L
if (L.data[i] == e) // 若找到值为 e 的元素,则返回其下标
return i;
}
return -1; // 若跳出 for 循环则代表未找到值为 e 的元素,则返回-1
}
int main() {
SqList L;
L.length = 10;
srand(time(NULL)); // 设置种子,使用当前时间作为种子,确保每次运行生成的随机数不同
for (int i = 0; i < 10; i++) {
int random_number = rand() % 100 + 1; // 生成1到100之间的随机数。
L.data[i] = random_number;
}
for (int i = 0; i < 10; i++) {
printf("%d ", L.data[i]);
}
int e;
scanf("%d", & e);
int res = Search_e(L, e);
printf("\n%s%d", (res == -1) ? "未找到该元素" : "找到的元素下标为", res);
return 0;
}