如何用c语言编写查询数组中的元素

Python07

如何用c语言编写查询数组中的元素,第1张

#include

<stdio.h>

#include

<stdlib.h>

void

main()

{

int

b[7]

int

i,

j,

dup

randomize()

/*

这一段代码可保证数组

b

内的

7

个随机数都不一样

*/

for

(i

=

0

i

<

7

++i)

{

do

{

b[i]

=

rand()

%

36

/*

产生随机数

*/

dup

=

0

/*

先假设没有重复

*/

for

(j

=

0

j

<

i

&&

!dup

++j)

/*

跟已经产生的数字一一比较

*/

{

if

(b[i]

==

b[j])

/*

如果重复了

*/

dup

=

1

/*

就记住是重复了

*/

}

}

while

(dup)

}

/*

这一段只是把结果打出以作验证

*/

for

(i

=

0

i

<

7

++i)

printf("%d

",

b[i])

printf("\n")

}

如果有看不懂的地方,请继续追问,一定会解释清楚。

#include <stdio.h>

#define MAXN 10

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

int main()

{

int i, index, n, x

int a[MAXN]

printf("输入个数:\n")

scanf("%d",&n)

for( i = 0i <ni++ )

scanf("%d", &a[i])

printf("输入x:\n")

scanf("%d", &x)

index = search( a, n, x )

if( index != -1 )

printf("index = %d\n", index)

else

printf("Not found\n")

return 0

}

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

int i

for(i=0i<ni++){

if(x==list[i])

return i

}

return -1

}

扩展资料:

数组使用规则:

1.可以只给部分元素赋初值。当{ }中值的个数少于元素个数时,只给前面部分元素赋值。例如:static int a[10]={0,1,2,3,4}表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。

2.只能给元素逐个赋值,不能给数组整体赋值。例如给十个元素全部赋1值,只能写为:static int a[10]={1,1,1,1,1,1,1,1,1,1}而不能写为:static int a[10]=1;请注意:在C、C#语言中是这样,但并非在所有涉及数组的地方都这样,数据库是从1开始。

3.如不给可初始化的数组赋初值,则全部元素均为0值。

4.如给全部元素赋值,则在数组说明中, 可以不给出数组元素的个数。例如:static int a[5]={1,2,3,4,5}可写为:static int a[]={1,2,3,4,5}动态赋值可以在程序执行过程中,对数组作动态赋值。这时可用循环语句配合scanf函数逐个对数组元素赋值。

参考资料:

百度百科-数组

按照题目要求来

find的功能是从左往右(下标从0到n)找到第一个符合符合条件的x的下标值

找到就返回下标值 未找到返回-1

所以你的find写的不对

具体逻辑是一旦找到x就立即结束循环并将下标返回

未找到就返回-1

调用find的地方根据返回值来判断是打印数组元素还是提示未找到