public static void main(String[] args) {
int[] res = {1,2,5,6,7,8,9,3,10,11,12,14,15,22,21,17,86,99,55,24,23,25,28,31,65};
int length = reslength;
int j = 25;
for (int i = 0; i < length; i++) {
if(res[i] == j) {
Systemoutprintln("位于数组:" + i);
}
}
}
main()
{ int a[20];
int i,b,n=0;
for(i=0;i<20;i++)
scanf("%d",a[i]);
printf("input the num to find");
scanf("%d",&b);
for(i=0;i<20;i++)
if(b==a[i])
{printf("%d",i);
n++;}
if(n==0)
printf("can not found");
}
我是C的初学者,试着编了下,你运行看看!
写的我好累,分给我吧
#include<iostreamh>
#include<iomaniph>
template <class T>
class Array
{
T set;
int n;
public:
Array(T data,int i){set=data;n=i;}
~Array(){}
void sort(); // 排序
int seek(T key); // 查找指定的元素
T sum(); // 求和
void disp(); // 显示所有的元素
};
template<class T>
void Array<T>::sort()
{
int i,j;
T temp;
for(i=1;i<n;i++)
for(j=n-1;j>=i;j--)
if(set[j-1]>set[j])
{
temp=set[j-1];set[j-1]=set[j];set[j]=temp;
}
}
template <class T>
int Array<T>::seek(T key)
{
int i;
for(i=0;i<n;i++)
if(set==key)
return i;
return -1;
}
template<class T>
T Array<T>::sum()
{
T s=0;int i;
for(i=0;i<n;i++)
s+=set;
return s;
}
template<class T>
void Array<T>::disp()
{
int i;
for(i=0;i<n;i++)
cout<<set<< ;
cout<<endl;
}
void main()
{
int a[]={6,3,8,1,9,4,7,5,2};
double b[]={23,61,15,84,67,38};
Array<int>arr1(a,9);
Array<double>arr2(b,6);
cout<< arr1:<<endl;
cout<< 原序列:; arr1disp();
cout<< 8在arr1中的位置:<<arr1seek(8)<<endl;
arr1sort();
cout<< 排序后:; arr1disp();
cout<<arr2:<<endl;
cout<< 原序列:; arr2disp();
cout<< 84在arr2中的位置:<<arr2seek(84)<<endl;
arr2sort();
cout<< 排序后:; arr2disp();
}
程序如下: #include<stdioh>
#include<stdlibh>
void main()
{
int a[10];
int i,n;
printf("输入十个数:\n");
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
printf("输入要查找的数:\n");
scanf("%d",&n);
for(i=0;i<=9;i++)
{
if(a[i]==n)
{
printf("找到了!\n");
exit(0);
}
}
printf("没有找到!\n");
}
#include <iostream>
using namespace std;
int a[1000];
//排序
void bubble(int a[],int n)
{
int i,j;
for(i=0;i<=n-2;i++)
{
for(j=0;j<=n-2-i;j++)
{
if(a[j]>a[j+1])
{
swap(a[j],a[j+1]);
}
}
}
}
//二分查找
int binary_search(int a, int len, int goal)
{
int low = 0;
int high = len - 1;
while(low <= high)
{
int middle = (low + high)/2;
if(a[middle] == goal)
return middle;
//在左半边
else if(a[middle] > goal)
high = middle - 1;
//在右半边
else
low = middle + 1;
}
//没找到
return -1;
}
int main()
{
int n;
printf("输入数据个数:");
cin>>n;
int i;
printf("请逐个输入数据:");
for(i=0;i<n;i++)
{
cin>>a[i];
}
bubble(a,n);
printf("输入要查找的数:");
int goal;
cin>>goal;
int index = binary_search(a, n, goal);
if(index != -1)
cout<<goal<<"在数组中的下标为"<<binary_search(a, n, goal)<<endl;
else
cout<<"没有找到"<<goal<<endl;
return 0;
}
mov ax,SEG DATA1
mov es,ax
mov ax,DATA1
mov al,A
jmp find
zYes db "YES"
find:
repne scasb
je yes
;
yes:
mov ah,9
push cs
pop ds
mov dx,zYes
int 21h
int cmp(char p,char q)
{
int i,j,k,size,pos=new int[strlen(p)];
bool nomat=true;
/先找出首字符的匹配位置集/
j=0;
for(i=0;p[i];i++)
{
if(p[i]==q[0])
{
nomat=false;
pos[j++]=i;
}
}
if(nomat)
return -1;
else if(strlen(q)==1)
return pos[0];
else
{
/匹配剩余项/
size=j;
j=0;
while(j<size)//枚举首位置集
{
i=pos[j++];
nomat=false;
for(i++,k=1;p[i]&&q[k];i++,k++)
if(p[i]!=q[k])
{
nomat=true;
break;
}
if(p[i]==NULL&&q[k]!=NULL)//如果p已匹配完而q没有
nomat=true;
else if(!nomat)
return pos[j-1];
}
}
delete []pos;
return -1;
}
希望对你有所帮助
public class Test6 { //二分查找 public static int findPos(int[] a,int key) { int start=0; int end=alength-1; int temp=0; while(start<end){ int mid=(start+end)/2; if(key>a[mid]){ start=mid+1; temp=start; }else if(key<a[mid]){ end=mid-1; temp=end; }else { return mid; } } return temp; } public static void main(String[] args) { int[]array={1,4,6,7,10,11,23,78}; Systemoutprintln(findPos(array, 0)); }}
以上就是关于设某个一维数组中有25个元素,编写一个顺序查找程序,从中查找值为x的元素在数组中的位置..全部的内容,包括:设某个一维数组中有25个元素,编写一个顺序查找程序,从中查找值为x的元素在数组中的位置..、编写程序,在给定数组中查找某个数,若找到,则输出该数在数组中的位置,否则输出“can not found!”。、C ++编写一个使用类模板对数组进行排序、查找和求元素和的程序。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)