c语言顺序查找100个数中找一个数为什么平均比较50次就可以 C语言程序编写:在有序的数列中查找某数,若该数在此数列中,则...

作者&投稿:阎宰 (若有异议请与网页底部的电邮联系)
共有100个待查找的位置。假设要查找的数在每个位置出现的概率是相等的为1/100,则平均查找次数为:
1/100+2/100+3/100+...+99/100+100/100=(100*99/2)/100=49.5

#include<stdio.h> #include<stdlib.h> main() { int i,k,t=0,n,max,min,sum=0; scanf("%d",&n); scanf("%d",&k); if(k%2==0){t++;sum+=k;} max=k;min=k; for(i=1;i<n;i++) { scanf("%d",&k); if(max<k)max=k; if(min>k)min=k; if(k%2==0){t++;sum+=k;} } printf("%d %d %f",max,min,sum*1.0/t); system("pause"); }

c语言 顺序查找 在一个数组里找出一个数的所在下标~

for(i=0;i<n;i++)
{
if(a[i]==Findnumber)

{
find_id=i;

printf("%d",find_id);

}
else;
}

之前写过一个程序类似的,你可以用作参考:
题目:试编写一个程序完成:有15个数按从下到大的顺序存放在一个数组中.输入一个数,要求折半查找法找出该数是数组中第几个元素的值.如果该数不在数组中,输出“不在表。
=====下面是C代码,其中数组没有设计为录入,而是固定数组=====
//输出的序列是从0开始算的,也就是输出的是所在数组的索引
//注意数组中没有8
#include
int main()
{
int a[]={1,2,3,4,5,6,7,9,10,11,12,13,14,15,16};
int n,first=0,end=14,mid;
scanf("%d",&n);
while(first<=end)//不要写成first<end,这样有可能会在最后一次二分(即first=end时)被忽略
{
mid=(first+end)/2;
if(a[mid]==n)
{
printf("your input number's index is %d(count from 0)",mid);
break;//忘记break会死循环
}
else if(n>a[mid])
{
first=mid+1;
}
else
{
end=mid-1;
}
}
if(first>end)
{
printf("your number is not in the array");
}
return 0;
}

...的数中查询某一个数据,如果找到就指出其在n个数中的位置,否则给出无...
答:} } return -1; // 返回-1代表没有查找到该值(_value)}void main(){ int arr[5]={2,12,45,87,95};// 前提是一组数组必须是有序数对(即按小到大或大到小) if(Dichotomy(arr,87,5)!=-1) printf("87在数组中对应的下标是:%d\n",Dichotomy(...

求解,用C语言编写一个程序,随机生成100个数,并从大到小排序
答:(unsigned)time(NULL)); for(i=0;i<100;nDec[i++]=rand()); for(i=0;i<100;i++){ for(k=i,j=k+1;j<100;j++) if(nDec[k]<nDec[j]) k=j; if(i!=k){ j=nDec[i]; nDec[i]=nDec[

用“顺序查找法”查找数组a中与x相等的第一个数的索引 求c语言编程
答:include<stdio.h>int main(){int a[]={1,2,3,4,5,6,7,8};//举个例子int x,i=0;scanf("%d",&x);for(i=0;i<sizeof(a);i++){ if(x==a[i]) { printf("索引i=%d\n",i); break; } }if(i>=sizeof(a))printf("x不在数组中\n");return 0;} ...

汇编语言编程:从FIRST开始的100个单元中存放着一个字符串,结束符为$...
答:LEA SI,STR1;字符串首地址 MOV BL,0;存放统计个数的寄存器赋初值 LOOP1:MOV CL,[SI];取数据 INC SI CMP CL,'$';看是否是结尾 JE EXIT ;是,退出 CMP CL,'A' ;不是结尾,比较是否是‘A’JNE NEXT ;不是'A'比较下一个 INC BL ;是,统计数加1 next: JMP LOOP1 EXIT:MO...

C语言:用选择排序法对一个数组里的数进行排序,从小到大,要求选出小的...
答:这样:int *a = (int *)malloc(sizeof(int) * n); //动态分配数组空间 ,有几个元素,n就是几。for(i=0; i<n; i++){ a[i]=录入数值;} Sort(a, n);for(j=0; j<n; j++){ printf("%d",a[ij);//输出的内容就是排序好了的 }//下面方法是用来排序的 void Sort(int *a...

C语言编程 将100个实数输入到一个一维数组中,求出各元素的和、平均值...
答://将100个实数输入到一个一维数组中,求出各元素的和、平均值、最小值和最大值及其所在的行号和列 include <stdio.h> define M 100 int main(){ float c[M];int i,n=0;float sum=0.0,ave,min,max;//和、平均值、最小值和最大值 int minx,maxx;//最小值和最大值所在列 pri...

求查找算法(折半查找法,顺序查找法,分别在一个程序里)“动画演示”程序...
答:折半查找法是效率较高的一种查找方法。假设有已经按照从小到大的顺序排列好的五个整数a0~a4,要查找的数是X,其基本思想是: 设查找数据的范围下限为l=0,上限为h=4,求中点m=(l+h)/2,用X与中点元素am比较,若X等于am,即找到,停止查找;否则,若X大于am,替换下限l=m+1,到下半段...

思考:在含有n个元素的一维数组中顺序查找一个。值k的数组元素的算法...
答:这个搜索算法的代码写错了。圆括号的参数表中,第一个参数应该是一个指针参数int *a。还有, 循环部分应该是for(i=0;i<n;i++),整体应该是:int search(int *a int n, int k){ for(i=0; i<n; i++ )if(a[i]==k) return i;return -1;} 整个查找算法的时间复杂度是O(n)。

汇编语言,从一个数组中找出所有奇数
答:查找奇数 LEA SI,ARRAY LEA DI,NUMBER MOV CX,N1 @1: MOV AX,[SI] MOV BX,AX SHR BX,1 JC @2 JMP @3 @2:

请问:1到n中减少了几个数,顺序被打乱,如何用公式找出缺失的数?谢谢
答:如图,A列中为若干个升序排列的数据,最后一个数据在A90,现在要在这个90个数中查找缺失了1~100中的哪些数字。C1=IFERROR(SMALL(IF(ISERROR(MATCH(ROW(INDIRECT(A$1&":"&A$90)),A$1:A$90,)),ROW(INDIRECT(A$1&":"&A$90)),""),ROW(1:1)),"")同时按Ctrl+Shift+Enter三键输入数组...