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

供稿:hz-xin.com     日期:2025-01-15
C语言题目:在数组中查找指定元素

#include
#define MAXN 10
int search( int list[], int n, int x );
int main()
{
int i, index, n, x;
int a[MAXN];
printf("输入个数:
");
scanf("%d",&n);
for( i = 0; i < n; i++ )
scanf("%d", &a[i]);
printf("输入x:
");
scanf("%d", &x);
index = search( a, n, x );
if( index != -1 )
printf("index = %d
", index);
else
printf("Not found
");
return 0;
}
int search( int list[], int n, int x ){
int i;
for(i=0;i<n;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函数逐个对数组元素赋值。
参考资料:
百度百科-数组

对于字符数组str[N],判断方法有以下三种:

第一种:用库函数strlen
len = strlen(str); // 数组长度
第二种:利用计数器
int i=0;
while(str[i++] != '\0'); // 数组str的长度为i
第三种:利用sizeof函数
len = sizeof(str)/sizeof(str[0]); // 数组长度对于其他类型的数组,都可以用字符数组的第三种方法,第三种方法是通用的。

对于数组的查询,其实就是对数组中数据做一个遍历。

最常用的方法就是通过循环对数组中的元素逐个取值,并与参考值(要查询的值)做比对,并处理结果。

下面是一个简单的对一维数组进行查询的样例。

函数功能:对输入的数组元素进行查询,打印符合查询值的元素位置,并返回查询到的元素总数。

函数名:array_query

函数声明: int array_query(int *a, int n, int v);

参数介绍:

    a: 输入的数组,类型为整型指针,表示整型数组。可以根据实际需要进行调整。

    n:数组中现有元素的个数。

    v:要查询的元素值。

返回值:

    整型,返回查询到的元素个数。如果出错返回-1。

实现代码:

 int array_query(int *a, int n, int v)
 {
     int i,ret;
     
     if(a == NULL || n <= 0) return -1; //出错处理
     for(ret = i = 0; i < n; i ++)
     {
         if(a[i] == n)
         {
             printf("%d
", i);//找到元素,打印下标,并累计统计值
             ret ++;
         }
     }
     
     return ret;//返回总数。
 }


int insert( int a[], int n )/*n为数组里原来的元素个数,k为插入的位置从左编号0开始*/ { printf( "\ninput the numble you want to:");

你定义的数组中没有数怎么查找?

# include <stdio.h>
# define n 10
void main()
{
int i,x;
int a[n];
printf("Please input a number for search:");
scanf("%d",&x);
printf("input 10 numbers:\n");

for(i=0;i<n;i++)
scanf("%d",&a[i]);

printf("\n");
if(a[i]==x)
printf("数组中存在该元素\n");
else if(a[i]!=x)
printf("数组中不存在该元素\n");

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

}

你看看这样对不对?

给你修改下,没有问题了,前提是数组中必须有内容!!!
你看下,有什么不明白的可以交流下!!

# include <stdio.h>
# define n 10
void main()
{
int i,x;
int a[n];
printf("Please input a number for search:");
scanf("%d",&x);
printf("input 10 numbers:\n");
for(i=0;i<n;i++)
if(a[i]==x)
break;
if(i==n) printf("数组中不存在该元素\n");
else printf("数组中存在该元素\n");

}

c编程高手团队正在招新,有意者速速行动,一起学习,一起努力!!

你10个数据的数都没有输入吧!

用c语言编写:从键盘输入10个数存入数组a中,统计数组下标是奇数且数组元...
在C语言中,编写一个程序来从键盘输入10个整数,存储到数组a中,然后统计数组下标为奇数且数组元素值为偶数的元素数量。首先,我们需要包含标准输入输出库,这在程序开始处已经完成。程序的主函数main中定义了变量i用于循环,数组a用于存储输入的10个整数,以及变量j用于记录满足条件的元素数量。接下来,...

c语言,查找数组中是否存在某个数?
从题目的叙述来看,这个函数的功能就是这一个包含有len个元素的num数组中查找是否存在值为key的元素。可以在找到后返回该元素的下标,否则返回-1。这个函数的函数体可以这么写:int i;for(i=0;i<len;i++)if(num[i]==key)return i;return -1;然后在主函数中的查找语句可以这么写:if(searchNum...

用c语言编程输出数组中个位数字为2的元素
include <stdio.h>int main(){ int arry[5]={12,51,62,45,112};int i=0;for(i=0;i<5;i++){ if(arry[i]%10==2)printf("%d ",arry[i]);} printf("\\n");} 运行结果

用C语言编写程序:判别一个输入的整数数组中各元素的值,若大于0则输出...
思路:先定义一个数组a,for循环键盘输入,并判断其值是否小于0,如果是就重新赋值0,最后输出数组。参考代码:include <stdio.h>int main(){int i,a[5];for(i=0;i<5;i++){\/\/键盘输入并判断 scanf("%d",&a[i]);if(a[i]<0) a[i]=0;}for(i=0;i<5;i++){printf("%d ",a[...

C语言编程:通过指针变量来输入,输出数组的全部元素
看看这个例子:include <stdio.h> include <stdlib.h> define ARRAY_SIZE (3)void main(void){ int array[ARRAY_SIZE] = {0};int *pData = 0;for (pData = array; pData < array + ARRAY_SIZE; pData++){ scanf("%d", &(*pData));\/\/ 或者 \/\/ scanf("%d", pData)...

c语言如何取数组元素个数?
1、C语言中,定义数组后可以用sizeof命令获得数组的长度(即可容纳元素个数)。但是通过传递数组名参数到子函数中,以获得数组长度是不可行的,因为在子函数当中,数组名会退化为一个指针。2、例如:int data[4],length;length=sizeof(data)\/sizeof(data[0]); \/\/数组占内存总空间除以单个元素占...

编写C语言程序,查找一个一维数组中的最大值,打印出该元素及其位置。
include <stdio.h> int main(void){ int a[5],j,i,k;puts("输入数值 以空格间隔");for(i=0;i<5;i++)scanf("%d",&a[i]);j=a[0];for(i=1;i<5;i++){ if (a[i]>j){j=a[i];k=i;} } printf("最大数为=%d 是第%d个元素",j,k);} ...

c语言输出一个数组中的素数
好的,以下是C语言输出一个数组中的素数的代码:include <stdio.h> int main() { int arr[] = {2, 3, 6, 7, 11, 13, 17, 19};int len = sizeof(arr) \/ sizeof(arr[0]);int flag;printf("The prime numbers in the array are: ");for (int i = 0; i < len; i++) ...

c语言问题 任意输入其中一个数,查找它在数组中的位置
任意输入其中一个数查找代码如下:include<stdio.h> int main(){ int a[10]={20,40,50,70,80,10,15,25,45,100};int i,b,c;char t,y,n;do{ printf("请输入20,40,50,70,80,10,15,25,45,100十个数中任意一个:\\n");scanf("%d",&b);printf("b=%d\\n",b);for(i=0;i<...

(C语言)有如下程序:输出数组中的全部元素。
第二个for语句,如果想每行输出一个数,应该管到printf("\\n"); 此时,应该讲两个printf语句放到{ }中。这个程序第二个for实际上只管printf("%d",a[i]); 所有的数都显示在一行上。第二个for管打印出数组中的数,因此不能省略。省略了打印的就是啊a[10]的值,而a[10]未曾定义。是内存中的...