精华内容
下载资源
问答
  • C语言判断数组中是否包含某个元素
    千次阅读
    2021-03-29 11:02:14
    #include <stdio.h>
    int main() {
            int nums[10] = { 1, 10, 6, 296, 177, 23, 0, 100, 34, 999 };
            int i, num, thisindex = -1;
    
            printf("Input an integer: ");
            scanf("%d", &num);
            for (i = 0; i<10; i++) {
                    if (nums[i] == num) {
                    thisindex = i;
                    break;
                    }
            }
            if (thisindex < 0) {
                    printf("%d isn't in the array.\n", num);
            }
            else {
                    printf("%d is in the array, it's index is %d.\n", num, thisindex);
            }
    
            return 0;
    }
    
    更多相关内容
  • 判断两个数组所含元素是否相同,数量也要相同。
  • 下面是我做IF语句练习时遇到的一个练习题,想要整理博客上判断两个数组中是否有相同的元素,需要的朋友可以参考下
  • 已知数组元素判断是否有重复元素(则判断元素在此之前是否出现过),有则赋值1,否则赋值0,其结果保存新的数组中。 如以下例子: 数组元素:1 2 3 4 2 1 5 4 3 2 预期结果:0 0 0 0 1 1 0 1 1 1 算法思想: 本题...

    已知数组元素,判断是否有重复元素(则判断某元素在此之前是否出现过),有则赋值1,否则赋值0,其结果保存在新的数组中。

    如以下例子:
    数组元素:1 2 3 4 2 1 5 4 3 2
    预期结果:0 0 0 0 1 1 0 1 1 1

    算法思想:

    本题就是判断某元素在此之前是否出现过。用两重循环即可以实现:一重循环遍历数组中的元素,二重循环进行比较是否存在重复元素,代码如下:

    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h> 
    int main()
    {
     int array[] = {1,2,3,4,2,1,5,4,3,2};
            int res[10];
            for(int j=0;j<10;j++)
            {
            	    res[j] = 0;
            	    printf("%d ",array[j]);
    		}
            printf("\n");
            for (int i = 1; i < 10; i++) 
            {
                for (int j = 0; j < i; j++) 
                {
                    if (array[i]==array[j])
                    {
                        res[i]=1;
                    }
                }
                    continue;
            }
            for (int k = 0; k < 10; k++) {
    			printf("%d ",res[k]);
            }
    }
    

    运行结果:

    在这里插入图片描述

    欢迎大家吐槽评论,如有更好的解法,交流一下~~~
    展开全文
  • c语言二分法实现查找数组元素的方法:1、递归算法,代码为【if(a[mid] == key) return mid】;2、非递归算法,代码为【while( left < right && a[mid] != key )】。本教程操作环境:windows7系统、c99...

    c语言二分法实现查找数组元素的方法:1、递归算法,代码为【if(a[mid] == key) return mid】;2、非递归算法,代码为【while( left < right && a[mid] != key )】。

    a332c7e9976bfe25939f2ba38c9244c3.png

    本教程操作环境:windows7系统、c99版本,DELL G3电脑。

    c语言二分法实现查找数组元素的方法:

    递归算法#include

    //二分法实现数组查找

    //

    int recurbinary(int *a, int key, int low, int high)

    {

    int mid;

    if(low > high)

    return -1;

    mid = (low + high)/2;

    if(a[mid] == key) return mid;

    else if(a[mid] > key)

    return recurbinary(a,key,low,mid -1);

    else

    return recurbinary(a,key,mid + 1,high);

    }

    非递归算法int binary( int *a, int key, int n )

    {

    int left = 0, right = n - 1, mid = 0;

    mid = ( left + right ) / 2;

    while( left < right && a[mid] != key )

    {

    if( a[mid] < key ) {

    left = mid + 1;

    } else if( a[mid] > key ) {

    right = mid - 1;

    }

    mid = ( left + right ) / 2;

    }

    if( a[mid] == key )

    return mid;

    return -1;

    }

    int main(void)

    {

    int a[10] = {2,4,6,8,10,12,14,16,18,20},t,k,f;

    scanf("%d",&t);

    k = recurbinary(a,t,2,20);

    f = binary(a,t,10); //非递归算法

    if(k == -1){

    printf("不存在此数\n");

    }else{

    printf("%-5d是数组第%d个元素\n%-5d数组的第%d个元素",k,k+1,f,f+1);

    }

    return 0;

    }【相关学习推荐:C语言教程视频】

    展开全文
  • 顺序查找: ...找5是否存在,和中间元素比对直接存在 找11是否存在,...   二分查找要比顺序查找执行效率高   区别: 顺序查找:无要求 二分查找:必须是有序数组  

     顺序查找:

    #include<stdio.h>
    #include<stdlib.h>
    
    #define LENGTH 5
    
    int main(void) {
    
    	int a[LENGTH] = { 1,3,5,7,11 };
    
    	int x;
    	printf("Please enter the number you want to find:");
    	scanf_s("%d", &x);
    
    	for (int i = 0; i < LENGTH; i++) {
    		if (x == a[i]) {
    			printf("find out %d,It is the %dth number in the array\n", x, i + 1);
    			return 0;  //找到了就直接退出程序
    		}
    	}
    
    	printf("%d does not exist!\n", x);
    	system("pause");
    	return 0;
    }

     

    二分查找:

    比如,在 1,3,5,7,9 五个数

    找3是否存在,3和5不对,再分别和1,3比较,总共花了3次

    找5是否存在,和中间元素比对直接存在

    找11是否存在,...

     

    二分查找要比顺序查找执行效率高

     

    区别:

    顺序查找:无要求

    二分查找:必须是有序数组

     

    展开全文
  • 现在从键盘上输入一个数,判断这个数是否数组a的数,如果是的话,打印出此数在数组a的位置来,否则打印“找不到“。 (提示:①设待查找的数为x,设三个位置变量l、m、h分别代表查找范围的顶部、中间位置和底部...
  • findelem()就是查找函数,查找输入的参数x在数组array的位置,函数返回元素在array的单元下标sort()是排序函数,用冒泡排序的方法将数组array从小到大排序算法思路:(1)输入数组(2)对数组进行排序(3)调用findelem...
  • 1 #include2 #include 3 #include 4 int search(int key, int a[], int length);5 int main()6 {7 // int a[13] ={ [1]=2,4,[5]=6}; //稀疏的元素8 //int i;9 int loc;10 int a[]={2,4,6,7,9,11,13,23,14,...
  • C语言 数组中重复的数字解决方法: ...解法2:建立一个大小为O(N)的哈希表,遍历数组中元素判断是否存在于哈希表。若不存在于哈希表,将这个元素加入哈希表之并且继续扫描,若这个元素存在于哈希表,则
  • 基于C语言判断两个数组是否元素相同基于C语言判断两个数组是否元素相同代码运行截图 基于C语言判断两个数组是否元素相同 只需要两个循环,外层循环遍历a数组,内层循环判断该元素在b数组能否查找到相同元素,如果...
  • 题目:判断两个数组中是否有相同的元素,有就输出“有”,没有就输出“没有”。解法一:用第一个数组中的所有元素与第二个数组中的所有元素相比较,若有相同元素,则停止寻找并输出“有”;若比较完所有的数后都没有...
  • 给一个数组判断数组里面是否有重复的数,如果有返回1,如果没有返回0 现在写的是蛮力法,时间效率为O(n^2); 目前想到的更好的办法是先排序,然后比较相邻元素是否有相等的。这个的时间效率就取决于排序算法了...
  • } int main() { /* 2 往一个字符串数组当中插入20个不同的字符串,然后输入一个字符串, 使用下列哈希算法判断该字符串是否出现在数组当中, 如果出现,它的下标是多少? */ char *arr[6] = { "abc","ccc","zzz",...
  • C语言数组--数组元素判断查询

    千次阅读 2020-08-05 22:42:52
    C语言数组数组元素判断查询 1.问题描述 今天复习C语言数组部分的内容,然后复习过程有一个题目要去做 做第三个题目的时候,整个人的思路卡住了,因为if()函数里面不能嵌套for()循环,然后如果for()函数...
  • 对于字符数组str[N],判断方法有以下三种: 第一种:用库函数strlen 1 len=strlen(str);//数组长度 第二种:利用计数器 1 2 inti=0; whi...
  • 问题描述:一个int数组,里面数据无任何限制,要求求出所有这样的数a[i],其左边的数都小于... 但是题目要求是只用一个额外数组,其实Max数组可以省去,完全可以边判断边计算,这是因为Max[i]是自左往右计算的,而判断
  • 总体思路:先对数组排序,然后去掉重复元素,对比两个去重以后的数组长度是否相同,若不同则两个数组不一致,若相同,则依次判断两个数组对应的元素是否相同,若出现一处不同,则不一致。 #include <stdio.h>...
  • C语言判断数组中是否存在该数

    千次阅读 2020-04-05 15:11:29
    C语言判断数组中是否存在该数 #include<stdio.h> #include<string.h> int main() { int query(int a[10],int num); int num; printf("请输入一个整数:"); scanf_s("%d",&num); int a[10] = {1...
  • 判断题】c语言中,一维数组某一个数组元素等价于一个同数据类型的变量。更多相关问题[问答题,简答题] 自动重合闸怎样分类?[问答题] 3/2及4/3接线方式有何特点?[问答题,简答题] 什么叫重合闸前加速?它有何优缺点...
  • 一个长度为n的数组里的所有数字都0~n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2,3,1,0,2,5...
  • 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 思路描述:一个数字的下方和右方是比它本身大的区域,而左方和上方时比它本身小的区域。选取右上角的数字进行比较,当该数大于指定的...
  • } 扩展资料: C语言中数组元素大小的相关排序规则: 一、首先需要对数组中元素进行排列,默认是以字符串的规则进行从小到大排序;可接收一个参数:自定义的规则相关排序。参数的具体要求如下: 1、参数首先必须是...
  • C语言实现删除数组中某个元素

    千次阅读 2021-05-19 15:29:50
    方法1:/*name: c语言 删除数组的某个元素tip:数组元素的增/删/ 改/查(简单遍历就ok)数组增删操作在c语言中没有相应的函数------我们最好是 自己写个函数保存好注意代码缩进,对齐*/#includeint main(){//删...
  • 已知一个大小为十的有序数组 从键盘输入一个数,判断是否在数组里 如果,输出是 否则输出这个数哪两个元素之间 若这个数大于数组最大值(或小于数组最小值)则输出否
  • 不用循环判断某个元素是否在数组中 比如判断3是否存在arr var arr = [1,2,3,4,5,6] arr.some(str => str === 3) // true
  • 方法一:当存在相同的元素时一步一步跳出循环 #include #include int main() { int i = 0; int j = 0; int arr1[] = { 1,2,3,4,5 }; int arr2[] = { 1,2,7,4,9 }; for (i = 0; i (arr1) / sizeof(arr1[0]); ...
  • C语言 删除数组中重复的元素

    万次阅读 多人点赞 2020-11-26 17:43:18
    删除数组中重复的元素 举个栗子,输入整数n,然后输入n个整数。直接上代码 #include<stdio.h> int main(void) { int i,n,a[100]; int j, temp; printf("输入元素的个数:"); scanf("%d",&n); for(i=0...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 83,493
精华内容 33,397
关键字:

c语言判断元素是否在数组中