本文目录一览:
C语言查找数组中的数据
#define IntSize sizeof(int)
#define StructSize sizeof(struct tagresult)
#includestdio.h
#includestdlib.h
#includestring.h
typedef int *ptint;
typedef struct tagresult
{
int v;
char bl;
}*ptresult;
int lessthan(const void *v1,const void *v2)
{
int i1=*((ptint)v1),i2=*((ptint)v2);
if(i1==i2)
return 0;
else if(i1i2)
return 1;
else
return -1;
}
int main()
{
int c,n,capacity=128,rlen=0,dlen;
ptint data=(ptint)calloc(capacity,IntSize);
ptresult result;
scanf("%d",n);
result=(ptresult)calloc(n,StructSize);
memset(result,0,n*StructSize);
while(n--0)
{
scanf("%d",c);
dlen=0;
for(;c0;c--)
{
if(dlen+1=capacity)
{
capacity*=2;
data=(ptint)realloc(data,capacity);
}
scanf("%d",data+dlen++);
}
scanf("%d",c);
//直接调用库函数qsort进行快速排序,就不自己写快速排序算法函数了
qsort(data,dlen,IntSize,lessthan);
if(c=dlen)
{
(*(result+rlen)).v=*(data+c-1);
(*(result+rlen)).bl=1;
}
rlen++;
}
for(n=0;nrlen;n++)
{
if(1==(*(result+n)).bl)
printf("Case #%d:%d\n",n+1,(*(result+n)).v);
else
printf("Case #%d:-1\n",n+1);
}
free(data);
free(result);
return 0;
}
c语言 数组查询
#include stdio.h
#include string.h
typedef char* String;
String names[7] = {"Allen", "Bob"};
int query(char const *name){
int index = 0;
while (*(names + index)){
//如果字符串相等就意味查询到结果,break退出循环
if (strcmp(*(names + index), name) == 0){
break;
}
index++;
}
return index;
}
int main(){
int index = query("Bob");
printf("%i\n", index);
}
使用顺序查找的方法,看程序!
运行结果,查询Bob,Bob的下标为1,返回正确!
如何用c语言编写查询数组中的元素
#include
stdio.h
#include
stdlib.h
void
main()
{
int
b[7];
int
i,
j,
dup;
randomize();
/*
这一段代码可保证数组
b
内的
7
个随机数都不一样
*/
for
(i
=
0;
i
7;
++i)
{
do
{
b[i]
=
rand()
%
36;
/*
产生随机数
*/
dup
=
0;
/*
先假设没有重复
*/
for
(j
=
0;
j
i
!dup;
++j)
/*
跟已经产生的数字一一比较
*/
{
if
(b[i]
==
b[j])
/*
如果重复了
*/
dup
=
1;
/*
就记住是重复了
*/
}
}
while
(dup);
}
/*
这一段只是把结果打出以作验证
*/
for
(i
=
0;
i
7;
++i)
printf("%d
",
b[i]);
printf("\n");
}
如果有看不懂的地方,请继续追问,一定会解释清楚。
C语言数组的查找函数
#includestdio.h
int main()
{
int a[5];
int i,max,min;
printf("input number:\n");
for(i=0;i5;i++)
scanf("%d",a[i]);
max=a[0];
min=a[0];
for(i=0;i5;i++){
if(a[i]max)
max=a[i];
}
for(i=0;i5;i++){
if(a[i]min)
min=a[i];
}
for(i=0;i5;i++){
printf("%d",a[i]);
printf(" ");
}
printf("\n");
printf("最大值为%d\n",max);
printf("最小值为%d\n",min);
return 0;
}