-
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; }
更多相关内容 -
(C语言)判断两个数组所含元素是否相同
2020-02-05 18:03:12判断两个数组所含元素是否相同,数量也要相同。 -
C语言中判断两数组中是否有相同的元素
2020-08-25 12:32:56下面是我在做IF语句练习时遇到的一个练习题,想要整理在博客上判断两个数组中是否有相同的元素,需要的朋友可以参考下 -
C语言 如何判断数组中是否存在某个元素
2020-11-21 21:46:09已知数组元素,判断是否有重复元素(则判断某元素在此之前是否出现过),有则赋值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语言二分法如何实现查找数组元素
2021-05-22 13:20:09c语言二分法实现查找数组元素的方法: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 )】。
本教程操作环境: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语言教程视频】
-
C语言-查找一个元素是否在数组中(顺序查找、二分查找)
2019-03-27 19:53:47顺序查找: ...找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是否存在,...
二分查找要比顺序查找执行效率高
区别:
顺序查找:无要求
二分查找:必须是有序数组
-
C语言 判断一个数是否是数组中的成员(用二分法查找)
2022-03-29 13:52:03现在从键盘上输入一个数,判断这个数是否是数组a中的数,如果是的话,打印出此数在数组a中的位置来,否则打印“找不到“。 (提示:①设待查找的数为x,设三个位置变量l、m、h分别代表查找范围的顶部、中间位置和底部... -
C语言 判断一个数是否是数组中的成员 用C语言编程
2021-05-19 03:06:26findelem()就是查找函数,查找输入的参数x在数组array的位置,函数返回元素在array中的单元下标sort()是排序函数,用冒泡排序的方法将数组array从小到大排序算法思路:(1)输入数组(2)对数组进行排序(3)调用findelem... -
C语言-查找一个元素在数组中的位置
2021-05-18 11:25:471 #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语言 数组中重复的数字分析及方法
2020-12-25 19:32:38C语言 数组中重复的数字解决方法: ...解法2:建立一个大小为O(N)的哈希表,遍历数组中的元素并判断是否存在于哈希表中。若不存在于哈希表中,将这个元素加入哈希表之中并且继续扫描,若这个元素存在于哈希表中,则 -
基于C语言判断两个数组是否元素相同
2021-05-03 09:57:43基于C语言判断两个数组是否元素相同基于C语言判断两个数组是否元素相同代码运行截图 基于C语言判断两个数组是否元素相同 只需要两个循环,外层循环遍历a数组,内层循环判断该元素在b数组中能否查找到相同元素,如果... -
C语言——判断两个数组中是否有相同的元素
2018-04-26 23:08:47题目:判断两个数组中是否有相同的元素,有就输出“有”,没有就输出“没有”。解法一:用第一个数组中的所有元素与第二个数组中的所有元素相比较,若有相同元素,则停止寻找并输出“有”;若比较完所有的数后都没有... -
(C语言)判断数组中是否有重复值
2021-12-04 21:09:26给一个数组,判断数组里面是否有重复的数,如果有返回1,如果没有返回0 现在写的是蛮力法,时间效率为O(n^2); 目前想到的更好的办法是先排序,然后比较相邻元素是否有相等的。这个的时间效率就取决于排序算法了... -
C语言实现哈希算法判断该字符串是否出现在数组当中,如果出现,它的下标是多少?
2021-11-12 21:49:13} int main() { /* 2 往一个字符串数组当中插入20个不同的字符串,然后输入一个字符串, 使用下列哈希算法判断该字符串是否出现在数组当中, 如果出现,它的下标是多少? */ char *arr[6] = { "abc","ccc","zzz",... -
C语言数组--数组元素判断查询
2020-08-05 22:42:52C语言数组–数组元素判断查询 1.问题描述 今天在复习C语言的数组部分的内容,然后复习过程有一个题目要去做 在做第三个题目的时候,整个人的思路卡住了,因为if()函数里面不能嵌套for()循环,然后如果在for()函数... -
C语言如何检查一个数组中元素的个数
2019-07-11 11:18:59对于字符数组str[N],判断方法有以下三种: 第一种:用库函数strlen 1 len=strlen(str);//数组长度 第二种:利用计数器 1 2 inti=0; whi... -
C语言找出数组中的特定元素的算法解析
2021-01-20 06:19:42问题描述:一个int数组,里面数据无任何限制,要求求出所有这样的数a[i],其左边的数都小于... 但是题目要求是只用一个额外数组,其实Max数组可以省去,完全可以边判断边计算,这是因为Max[i]是自左往右计算的,而判断 -
c语言判断两个数组是否相同,不考虑把顺序和重复元素
2020-12-22 11:08:19总体思路:先对数组排序,然后去掉重复元素,对比两个去重以后的数组长度是否相同,若不同则两个数组不一致,若相同,则依次判断两个数组对应的元素是否相同,若出现一处不同,则不一致。 #include <stdio.h>... -
C语言判断数组中是否存在该数
2020-04-05 15:11:29C语言判断数组中是否存在该数 #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语言中,一维数组某一个数组元素等价于一个同数据类型的变量。
2021-05-20 04:19:21【判断题】c语言中,一维数组某一个数组元素等价于一个同数据类型的变量。更多相关问题[问答题,简答题] 自动重合闸怎样分类?[问答题] 3/2及4/3接线方式有何特点?[问答题,简答题] 什么叫重合闸前加速?它有何优缺点... -
C语言实现:找出数组中重复的数字--详细
2022-04-30 23:03:02在一个长度为n的数组里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2,3,1,0,2,5... -
C语言二维数组中的查找的实例
2020-12-26 03:45:45请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 思路描述:一个数字的下方和右方是比它本身大的区域,而左方和上方时比它本身小的区域。选取右上角的数字进行比较,当该数大于指定的... -
怎样在c语言中比较一个数组中元素的大小?,c语言数组的定义
2021-05-22 14:59:25} 扩展资料: C语言中数组元素大小的相关排序规则: 一、首先需要对数组中的元素进行排列,默认是以字符串的规则进行从小到大排序;可接收一个参数:自定义的规则相关排序。参数的具体要求如下: 1、参数首先必须是... -
C语言实现删除数组中某个元素
2021-05-19 15:29:50方法1:/*name: c语言 删除数组的某个元素tip:数组元素的增/删/ 改/查(简单遍历就ok)数组增删操作在c语言中没有相应的函数------我们最好是 自己写个函数保存好注意代码缩进,对齐*/#includeint main(){//删... -
c语言编程判断数是否在数组里
2021-11-14 21:07:06已知一个大小为十的有序数组 从键盘输入一个数,判断是否在数组里 如果在,输出是 否则输出这个数在哪两个元素之间 若这个数大于数组最大值(或小于数组最小值)则输出否 -
不用循环判断某个元素是否在数组中
2021-07-13 10:13:47不用循环判断某个元素是否在数组中 比如判断3是否存在arr中 var arr = [1,2,3,4,5,6] arr.some(str => str === 3) // true -
C语言:判断两个数组是不是有相同的元素
2018-02-01 23:51:48方法一:当存在相同的元素时一步一步跳出循环 #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...