C语言题目:在数组中查找指定元素

2024-12-15 12:49:04
推荐回答(4个)
回答1:

#include

#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 = 0; i < n; i++ )

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=0;i

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函数逐个对数组元素赋值。

参考资料:

百度百科-数组

回答2:

C语言程序:

#include 

#define N 11

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

void main()
{
int repeat, n, x;
int arr[N][N];
int result[N];
int i, j;

scanf("%d", &repeat);
for(i=0; i {
scanf("%d", &n);
for(j=1; j<=n; j++)
{
scanf("%d", &arr[i][j]);
}
arr[i][0] = n;

scanf("%d", &x);

result[i] = search(arr[i], n, x);
}

for(i=0; i if(result[i] == -1)
printf("Not found\n");
else
printf("index = %d\n", result[i]);
}

运行测试:

回答3:

#include 
#include 
#include
#include
int search(int list[],int n,int x)
{
int i,flag=0;
for(i=0;i {
if(list[i]==x)
{
flag=1;
break;
}
}
if(flag==1)
return i;
else
return -1;
}
int main()
{
int repeat,i,j,n,x,a[100];
scanf("%d",&repeat);
while(repeat--)
{
scanf("%d",&n);
for(i=0;i scanf("%d",&a[i]);
scanf("%d",&x);
if(search(a,n,x)!=-1)
printf("index = %d\n",search(a,n,x));
else
printf("Not Found\n");
}
return 0;
}

回答4:

#include
int search(int list[],int n,int x)
{
int i;
for(i=0;i{
if(list[i]==x)
return i;
}
return -1;
}
int main()
{
int repeat,n,a[10],j,i,x;
int result[10];
scanf("%d",&repeat);
for(i=0;i{
scanf("%d",&n);
for(j=0;j{
scanf("%d",&a[j]);
}
scanf("%d",&x);
result[i]=search(a,n,x);
}
for(i=0; iif(result[i] == -1)
printf("Not found\n");
else
printf("index = %d\n", result[i]);
return 0;